Справочная информация: В рамках пакета автоматизированного тестирования, который я создаю, мне нужно настроить 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.