Показать полную графическую версию : [решено] Почему параметры реестра импортируются в раздел WOW6432Node
loveaboveall
01-12-2010, 14:48
Столкнулся с интересной проблемой при попытке скрыть пользователя в windows 7.
Выполнение reg файла содержания
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
"USERNAME"=dword:00000000
приводит к тому что запись добавляется в следующую ветку
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
пользователь при этом не скрывается.
из этой темы >> http://forum.oszone.net/archive/index.php/t-114079.html
ясно что такое WOW6432Node
но что делать, если reg файл добавляет запись не в ту ветку? как это исправить?
PS запись в reg файле верная.
из этой темы >> http://forum.oszone.net/archive/index.php/t-114079.html
ясно что такое WOW6432Node »
Там есть ссылка http://support.microsoft.com/kb/305097 , объясняющая запуск 64-разрядного редактора реестра. А в нем попробуйте Файл - Импорт и выберите REG-файл.
loveaboveall
01-12-2010, 16:25
Все дело в автоматизации.
А в нем попробуйте Файл - Импорт и выберите REG-файл.
тогда проще вручную зайти в нужную ветку и вручную добавить.
Смысл в том, чтобы запустить файл и он автоматически добавил в нужное место. Должно быть какое-то разделение в командах, что ли, как-то указать ОС выбирать куда будет добавление, 32 или 64 битную версию, может быть
как то в первой строчке файла
Windows Registry Editor Version 5.00
не знаю...
Пробовал в косоле - таже ерунда. Например так, создаю bat файл с таким содержанием:
@echo off
chcp 1251
net user USER1 123 /add
net localgroup Administrators USER1 /ADD
set key="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList"
REG ADD %key% /v USER1 /t REG_DWORD /d 0 /f
при выполнении его создается пользователь USER1 с паролем 123
а вот запись в реестр попадает в ветку WOW6432Node.
Вот в этом и проблема, так как же указать системе куда нужно направить запись?
PS еще одна интересность. Вначале этот reg файл у меня работал и добавлялось правильно, а потом внезапно стал добавлять в ветку WOW6432Node. Это меня и удивило.
Morpheus
01-12-2010, 20:18
Протестил :)
При добавлении из 32-битной программы, например из
C:\Windows\SysWOW64\cmd.exe
---
file.reg
regedit /s file.reg
%systemroot%\syswow64\regedit /s file.reg
пишется в
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
При добавлении из 64-битной программы, например из
C:\Windows\System32\cmd.exe
---
file.reg
regedit /s file.reg
пишется в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
а
%systemroot%\syswow64\regedit /s file.reg
в
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
Morpheus, спасибо за тестирование :)
Все дело в автоматизации. »
Это немного другой подтекст... А откуда команда запускается? Если 32-разрядного приложения, то понятна причина.
Morpheus
02-12-2010, 00:24
Vadikan, вэлкам :)
Опыты продолжились. Делаем батник с текстом:
regedit /s "путь\file.reg"
и выполняем его из 32-битной
C:\Windows\SysWOW64\cmd.exe
"C:\Windows\System32\cmd.exe" /c "путь\file.bat"
- добавляется в WOW6432Node.
Т.е. она остаётся 64-разрядной до тех пор, пока выполняется из 64-разрядной среды.
[hr]
Ок, вытаскиваем cmd.exe из System32, переименовываем в cmd64.exe и кладём в C:\Windows.
Вызываем из 32-битной cmd
cmd64 /c "путь\file.bat"
- добавляется в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
Boa Soft был прав.
P.S. При запуске есть ошибки:
Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application.
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
Не удается найти текст сообщения с номером 0x8 в файле сообщений System.
но всё работает.
Morpheus, получается, что командная строка и редактор реестра в 64-разрядной ОС выполняются в 32-разрядной среде :)
Morpheus
02-12-2010, 01:02
Vadikan, :dont-know уже и не знаю чего думать :)
loveaboveall
02-12-2010, 11:15
Просто есть какой-то нюанс интересный с этим вопросом. Дело в том, что я делал так. Открываю блокнот, добавляю туда строки
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
"USERNAME"=dword:00000000
и батник. Запускаю батник - проверяю - добавился пользователь. Запуская reg файл - проверяю да все норм, запись добавилась куда нужно. Перезагружаюсь проверяю. Все норм. Еще раз перезагружаюсь - опять все норм. Пробую подключится к ОС под пользователем - получается. Вывод - все работает.
Далее самое интересное. Удаляю пользователя вручную. Удаляю запись из реестра. Прошел день. Я пробую снова этот bat файл и reg файл. И опа - запись уже идет в WOW6432Node. ОС таже.
Странная какае-то избирательность (((
Morpheus
02-12-2010, 11:26
Я пробую снова этот bat файл »
Двойным щелчком или откуда-то?
loveaboveall
02-12-2010, 11:32
Из Total commandera. Также запускал и впервый раз из этого же TOTAL cocmandera. Но тогда сработало, а в последующих случаях уже нет. Наверно скорее всего и первый раз не должно было сработать, наверно что-то заглючило.
Я открываю реестр смотрю наличие записи и ничего нет. Сначала я подумал, что reg файл просто не работает, но ведь сообщение то выдалось что команда успешно прошла. Сделал поиск по реестру и нашел свою запись в ветке WOW6432Node. Это меня сильно удивило, с чего вдруг ведь путь то прописан. Ну и далее уже начал читать что это за WOW6432Node такое и с чем его едят и так пришел на oszone.net
Morpheus
02-12-2010, 12:12
loveaboveall, не знаю, как там в тотале что устроено. Сходу находится
Total Commander 7.55a for Windows released!
...and various x64DisableRedirection problems.
http://www.ghisler.com/whatsnew.htm
У Вас версия свежая?
loveaboveall
05-12-2010, 13:23
7.50a 32bit
Morpheus
05-12-2010, 13:32
loveaboveall, попробуйте обновить. Total Commander 7.56 (http://soft.oszone.net/program/65/Total_Commander/)
вариант без переименования cmd.exe (источник (http://www.sql.ru/forum/actualthread.aspx?tid=782106)), код для батника:
subst z: %windir%\system32 & start "" z:cmd /c "путь\64.bat" & subst z: /d
код прямого запуска (из приложений):
cmd /c (subst z: %windir%\system32)&&(start "" z:cmd /c "путь\64.bat")&&(subst z: /d)
предполагается, что буква Z: свободна, что естественно для этапа установки, иначе нужно добавить код поиска свободной буквы диска
P.S. очевидно, метод основан на том факте, что NTFS-ссылки не могут быть каскадными
amel27, спасибо, интересный вариант, только мне проверить не на чем...
Vadikan, под рукой только Win2003 x64, на ней работает
Boa Soft
17-01-2011, 12:13
Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application. (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. Не удается найти текст сообщения с номером 0x8 в файле сообщений System. »
А если попробовать Mui с ссответствующем именем добавть?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC