6

Справочная информация: В рамках пакета автоматизированного тестирования, который я создаю, мне нужно настроить Autologon на моих виртуальных машинах «по требованию». Под требованием я подразумеваю, что я не хочу предварительно предварительно настраивать свою ВМ или любой моментальный снимок, чтобы иметь уже настроенную Autologon, из соображений безопасности, а также для огромного бизнес-кейса.

Мое решение до сих пор: я копирую скрипт на гостевую машину, а затем использую Sysinternals PsExec для его выполнения. Сценарий:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /f /v DefaultUserName /t REG_SZ /d myusername
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /f /v DefaultPassword /t REG_SZ /d myfakepassword
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /f /v DefaultDomainName /t REG_SZ /d mydomain
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /f /v ForceAutoLogon /t REG_SZ /d 1
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /f /v AutoAdminLogon /t REG_SZ /d 1
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoLogonChecked" /f /ve /d 1

Примечание: я не верю, что AutoLogonChecked требуется для машин после Windows 2000, но сейчас я делаю это на всякий случай. Может быть, ForceAutoLogon тоже не уверен, пока не уверен.

Проблема: я вижу, что PsExec выполняет это правильно, и все значения находятся в реестре, однако, когда я перезагружаю машину, пользователь не входит в систему автоматически ...Когда я запускаю это второй раз, а затем перезагружаю машину, пользователь, наконец, вошел в систему.

Разница между состояниями реестра показывает, что в первый раз, когда я запускаю это, в нем отсутствует как "1" для AutoAdminLogon, так и ключ DefaultPassword. Во второй раз, когда я выполняю его, эти значения корректно сохраняются, как я и предполагал.

И так, что здесь происходит? Это ожидается? В конце этого поста утверждается, что все действительно работает (проблема заключалась в том, что сценарий выхода из системы устанавливал значения). Кажется, не работает для меня, однако.

Обратите внимание, что это кажется уникальным для Windows 7, не происходит в Windows XP

Также обратите внимание, что вам не нужен PsExec для воссоздания проблемы - просто измените реестр самостоятельно

РЕДАКТИРОВАТЬ / обновить:

  • Войдите в систему в интерактивном режиме и запустите скрипт (поэтому, не выполняя его удаленно), автоматически выйдя из системы, снова войдите в систему (так что это работает)
  • удаленно выполнить скрипт в гостевой системе, когда я в интерактивном режиме вошел в систему, выход из системы автоматически снова регистрирует меня (так что это работает)
  • удаленно выполнить сценарий в гостевой системе при неинтерактивном сеансе, если после этого я вхожу в систему (то есть, теперь интерактивную), затем снова отключаюсь, она снова регистрирует меня в системе (поэтому она затем работает)

РЕДАКТИРОВАТЬ / обновление 2: Это происходит только для Win7x86, Win7x64, Win8x64. Это не происходит для Windows XP

РЕДАКТИРОВАТЬ 3: я получаю такое же поведение, используя инструмент Autlogon.exe Sysinsternal.

4 ответа4

1

Хранение логина / пароля в реестре в виде простого текста не очень хорошая идея ... Я хочу рекомендовать вам взглянуть на инструмент LogonExpert

0

Tahocannan привел меня в LogonExpert. С помощью LogonExpert я могу установить его в автоматическом режиме, настроить для него автоматический вход в систему, затем (удаленно) завершить процесс Windows LogonUI.exe, а затем перезагрузиться. Результат: автоматически вошел в систему. Затем я немедленно удаляю LogonExpert, а затем выполняю команды в интерактивном режиме на гостевой машине.

Я считаю, что ключевым моментом здесь является уничтожение процесса «LogonUI.exe», работающего в Windows. Иногда я получаю тот же результат с LogonExpert, где после настройки автоматического входа в систему перезагрузка не приводит к автоматическому входу в систему по желанию. Завершая LogonUI.exe, он принудительно перезагружает библиотеку LogonExpert. Тогда перезагрузка будет работать

0

Я полагаю, что это происходит потому, что когда вы в первый раз устанавливаете AutoAdminLogon = 1, в Windows 7 также есть другое значение реестра, называемое AutoLogonCount, которое равно 0. Если Windows при загрузке увидит, что это значение установлено в 0 в реестре, она отключит AutoAdminLogon, и поэтому при перезагрузке вы не сможете выполнить автоматический вход. Если вы удаляете AutoLogonCount из реестра в то же время, когда для AutoAdminLogon установлено значение 1, после перезагрузки все будет в порядке.

Хотя идея autologon считается небезопасной для обычного настольного использования, autoLogon очень полезен для специальных компьютеров, таких как киоски или компьютеры, подключенные к демонстрационному дисплею или устройствам мониторинга, где программное обеспечение должно загружаться автоматически после загрузки.

0

Кажется, что-то с PsExec.
Прочтите этот вопрос и посмотрите, поможет ли вам какое-либо из решений:
Как изменить автоматический вход в систему с помощью скрипта или командной строки?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .