Contexto: Como parte de uma suíte de testes automatizada que estou construindo, preciso configurar o Autologon em minhas máquinas virtuais "on demand". Por demanda, quero dizer que não quero necessariamente pré-configurar minha VM ou qualquer snapshot para que o Autologon já esteja configurado, por motivos de segurança e também um grande business case.
Minha solução até agora: estou copiando um script para a máquina convidada e, em seguida, usando o Sysinternals PsExec para executá-lo. O script é:
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
Nota : Eu não acredito AutoLogonChecked é necessário para máquinas pós Windows 2000, mas eu estou fazendo isso apenas no caso de agora. Talvez ForceAutoLogon não seja, ainda não tenho certeza.
O problema : Eu vejo PsExec executa isso corretamente e todos os valores estão no registro, no entanto, quando eu reiniciar a máquina, o usuário não está automaticamente conectado ... Quando eu executo isso uma segunda vez, em seguida, reinicie a máquina, o usuário é finalmente logado.
Um diff entre os estados do registro mostra que a primeira vez que eu corro isso, está faltando o "1" para AutoAdminLogon e também a chave DefaultPassword. Na segunda vez que eu o executo, esses valores estão corretamente intactos como eu pretendia.
Então, o que está acontecendo aqui? Isso é esperado? este postar declarações no final que realmente tudo só funciona (o problema era que um script de logoff estava definindo os valores). Não parece funcionar para mim no entanto.
Observe isso parece exclusivo para o Windows 7, não ocorre no Windows XP
Observe também que você não precisa do PsExec para recriar o problema - apenas modifique o registro você mesmo
EDITAR / atualizar :
- Faça o login de forma interativa e execute o script (para não executá-lo remotamente), o logoff faz login automaticamente (assim, funciona)
- executar remotamente o script no convidado quando estou logado interativamente, fazer logoff automaticamente me conecta de volta (assim, funciona)
- executar remotamente o script em guest quando com sessão não-interativa se eu fizer login depois (então, interativo agora), em seguida, recuar, ele me conecta novamente (então, então funciona)
EDIT / update 2 : Isso ocorre apenas para Win7x86, Win7x64, Win8x64. Isso não ocorre para o Windows XP
EDITAR 3 : Eu tenho o mesmo comportamento usando a ferramenta Autlogon.exe do Sysinsternal.
Respostas:
Armazenar login / senha no registro em texto simples não é uma boa idéia ... Eu quero recomendar que você olhe LogonExpert ferramenta
fonte
Parece ser algo com o PsExec.
Leia esta pergunta e veja se alguma das soluções ajuda você a:
Como faço para alterar o logon automático via script ou linha de comando?
fonte
runas
mas com recursos adicionaisSYSTEM
, executado no computador remoto). Entrando e executando manualmente como qualquer usuário faria a mesma coisa.tahocannan me levou ao LogonExpert. Com o LogonExpert, posso instalá-lo silenciosamente, configurar o Logon automático com ele e, em seguida, (remotamente) eliminar o processo LogonUI.exe do Windows e reinicializá-lo. O resultado: conecto-me automaticamente. Em seguida, desinstalo imediatamente o LogonExpert e, em seguida, executo comandos interativamente na máquina convidada.
Acredito que matar o processo "LogonUI.exe" nativo do Windows é a chave aqui. Ocasionalmente, eu obteria o mesmo resultado com o LogonExpert, onde depois de configurar o Logon Automático, uma reinicialização não resultaria em um login automático conforme desejado. Ao finalizar o LogonUI.exe, ele força uma nova carga da biblioteca do LogonExpert. Então a reinicialização funcionará
fonte
Eu acredito que isso acontece porque a primeira vez que você definir AutoAdminLogon = 1, há também um outro valor de registro no Windows 7 chamado AutoLogonCount que é definido como 0. Se o Windows vê esse valor definido como 0 no registro quando ele é inicializado, desabilitará AutoAdminLogon e É por isso que quando você reinicia você não consegue fazer logon automático. Se você excluir AutoLogonCount do registro ao mesmo tempo em que definir seu AutoAdminLogon como 1, você deverá ficar bem após a reinicialização.
Embora a idéia de autologon seja considerada insegura para uso regular em desktops, o autoLogon é muito útil para computadores especiais, como quiosques ou computadores conectados a um monitor de demonstração ou dispositivos de monitoramento onde o software precisa ser carregado automaticamente após a inicialização.
fonte