Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Почему параметры реестра импортируются в раздел WOW6432Node (http://forum.oszone.net/showthread.php?t=193042)

loveaboveall 01-12-2010 14:48 1555872

Столкнулся с интересной проблемой при попытке скрыть пользователя в 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 файле верная.

Vadikan 01-12-2010 15:47 1555910

Цитата:

Цитата loveaboveall
из этой темы >> 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 1555935

Все дело в автоматизации.
Цитата:

А в нем попробуйте Файл - Импорт и выберите 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 1556108

Протестил :)
При добавлении из 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

Vadikan 01-12-2010 22:08 1556224

Morpheus, спасибо за тестирование :)

Цитата:

Цитата loveaboveall
Все дело в автоматизации. »

Это немного другой подтекст... А откуда команда запускается? Если 32-разрядного приложения, то понятна причина.

Morpheus 02-12-2010 00:24 1556296

Vadikan, вэлкам :)
Опыты продолжились. Делаем батник с текстом:
Код:

regedit /s "путь\file.reg"
и выполняем его из 32-битной
Код:

C:\Windows\SysWOW64\cmd.exe
Код:

"C:\Windows\System32\cmd.exe" /c "путь\file.bat"
- добавляется в WOW6432Node.
Т.е. она остаётся 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
Boa Soft был прав.
P.S. При запуске есть ошибки:
Код:

Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application.
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
Не удается найти текст сообщения с номером 0x8 в файле сообщений System.

но всё работает.

Vadikan 02-12-2010 00:52 1556312

Morpheus, получается, что командная строка и редактор реестра в 64-разрядной ОС выполняются в 32-разрядной среде :)

Morpheus 02-12-2010 01:02 1556317

Vadikan, :dont-know уже и не знаю чего думать :)

loveaboveall 02-12-2010 11:15 1556485

Просто есть какой-то нюанс интересный с этим вопросом. Дело в том, что я делал так. Открываю блокнот, добавляю туда строки

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 1556490

Цитата:

Цитата loveaboveall
Я пробую снова этот bat файл »

Двойным щелчком или откуда-то?

loveaboveall 02-12-2010 11:32 1556492

Из Total commandera. Также запускал и впервый раз из этого же TOTAL cocmandera. Но тогда сработало, а в последующих случаях уже нет. Наверно скорее всего и первый раз не должно было сработать, наверно что-то заглючило.

Я открываю реестр смотрю наличие записи и ничего нет. Сначала я подумал, что reg файл просто не работает, но ведь сообщение то выдалось что команда успешно прошла. Сделал поиск по реестру и нашел свою запись в ветке WOW6432Node. Это меня сильно удивило, с чего вдруг ведь путь то прописан. Ну и далее уже начал читать что это за WOW6432Node такое и с чем его едят и так пришел на oszone.net

Morpheus 02-12-2010 12:12 1556523

loveaboveall, не знаю, как там в тотале что устроено. Сходу находится
Цитата:

Total Commander 7.55a for Windows released!
...and various x64DisableRedirection problems.
http://www.ghisler.com/whatsnew.htm
У Вас версия свежая?

loveaboveall 05-12-2010 13:23 1558729

7.50a 32bit

Morpheus 05-12-2010 13:32 1558737

loveaboveall, попробуйте обновить. Total Commander 7.56

amel27 16-01-2011 12:24 1589770

вариант без переименования 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)
предполагается, что буква Z: свободна, что естественно для этапа установки, иначе нужно добавить код поиска свободной буквы диска

P.S. очевидно, метод основан на том факте, что NTFS-ссылки не могут быть каскадными

Vadikan 16-01-2011 12:29 1589775

amel27, спасибо, интересный вариант, только мне проверить не на чем...

amel27 16-01-2011 12:59 1589799

Vadikan, под рукой только Win2003 x64, на ней работает

Boa Soft 17-01-2011 12:13 1590539

Цитата:

Цитата Morpheus
Не удается найти текст сообщения с номером 0x2350 в файле сообщений Application. (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. Не удается найти текст сообщения с номером 0x8 в файле сообщений System. »

А если попробовать Mui с ссответствующем именем добавть?


Время: 02:14.

Время: 02:14.
© OSzone.net 2001-