![]() |
Столкнулся с интересной проблемой при попытке скрыть пользователя в 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 файле верная. |
Цитата:
|
Все дело в автоматизации.
Цитата:
Смысл в том, чтобы запустить файл и он автоматически добавил в нужное место. Должно быть какое-то разделение в командах, что ли, как-то указать ОС выбирать куда будет добавление, 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. Это меня и удивило. |
Протестил :)
При добавлении из 32-битной программы, например из Код:
C:\Windows\SysWOW64\cmd.exe Код:
file.reg Код:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList Код:
C:\Windows\System32\cmd.exe Код:
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, спасибо за тестирование :)
Цитата:
|
Vadikan, вэлкам :)
Опыты продолжились. Делаем батник с текстом: Код:
regedit /s "путь\file.reg" Код:
C:\Windows\SysWOW64\cmd.exe Код:
"C:\Windows\System32\cmd.exe" /c "путь\file.bat" Т.е. она остаётся 64-разрядной до тех пор, пока выполняется из 64-разрядной среды. Ок, вытаскиваем cmd.exe из System32, переименовываем в cmd64.exe и кладём в C:\Windows. Вызываем из 32-битной cmd Код:
cmd64 /c "путь\file.bat" Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList P.S. При запуске есть ошибки: Код:
Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application. |
Morpheus, получается, что командная строка и редактор реестра в 64-разрядной ОС выполняются в 32-разрядной среде :)
|
Vadikan, :dont-know уже и не знаю чего думать :)
|
Просто есть какой-то нюанс интересный с этим вопросом. Дело в том, что я делал так. Открываю блокнот, добавляю туда строки
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList] "USERNAME"=dword:00000000 и батник. Запускаю батник - проверяю - добавился пользователь. Запуская reg файл - проверяю да все норм, запись добавилась куда нужно. Перезагружаюсь проверяю. Все норм. Еще раз перезагружаюсь - опять все норм. Пробую подключится к ОС под пользователем - получается. Вывод - все работает. Далее самое интересное. Удаляю пользователя вручную. Удаляю запись из реестра. Прошел день. Я пробую снова этот bat файл и reg файл. И опа - запись уже идет в WOW6432Node. ОС таже. Странная какае-то избирательность ((( |
Цитата:
|
Из Total commandera. Также запускал и впервый раз из этого же TOTAL cocmandera. Но тогда сработало, а в последующих случаях уже нет. Наверно скорее всего и первый раз не должно было сработать, наверно что-то заглючило.
Я открываю реестр смотрю наличие записи и ничего нет. Сначала я подумал, что reg файл просто не работает, но ведь сообщение то выдалось что команда успешно прошла. Сделал поиск по реестру и нашел свою запись в ветке WOW6432Node. Это меня сильно удивило, с чего вдруг ведь путь то прописан. Ну и далее уже начал читать что это за WOW6432Node такое и с чем его едят и так пришел на oszone.net |
loveaboveall, не знаю, как там в тотале что устроено. Сходу находится
Цитата:
У Вас версия свежая? |
7.50a 32bit
|
loveaboveall, попробуйте обновить. Total Commander 7.56
|
вариант без переименования cmd.exe (источник), код для батника:
Код:
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) P.S. очевидно, метод основан на том факте, что NTFS-ссылки не могут быть каскадными |
amel27, спасибо, интересный вариант, только мне проверить не на чем...
|
Vadikan, под рукой только Win2003 x64, на ней работает
|
Цитата:
|
Время: 02:14. |
Время: 02:14.
© OSzone.net 2001-