Por que preciso configurar os valores do Autologon no registro duas vezes antes de funcionar e posso corrigir isso?

6

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.

JohnZaj
fonte
Depois de executar seu script uma vez, o que acontece se você fizer logoff, fazer logon e, em seguida, reinicializar?
Moab
Você pode ver minhas edições acima? Observe que, como estou executando o script remotamente, "I" não é necessariamente logoff. Você tem uma boa pergunta, uma que eu não tenho certeza de que vou ser capaz de responder a menos que haja um utilitário onde eu possa fazer logoff e logon não interativamente.
JohnZaj
O enredo engrossa! hmmmm
Moab
Eu estou realmente esperando por uma resposta aqui para que eu possa dormir à noite. Eu realmente acho que isso iria chamar a atenção de que precisava se estivesse no Stack Overflow, pode apenas continuar inserindo dupes em SO até que o Admin desista e deixe-o voar para lá
JohnZaj
Você tentou Executar como Admin?
avirk

Respostas:

1

Armazenar login / senha no registro em texto simples não é uma boa idéia ... Eu quero recomendar que você olhe LogonExpert ferramenta

tahocannan
fonte
Concordo. Na verdade, toda a idéia do Autologon também não é uma "boa idéia" ... É para situações de quiosque em que o sistema é bloqueado pela capacidade do usuário de fazer algo malicioso. Em outras palavras, mesmo que possam acessar as credenciais de texto não criptografado, as credenciais não devem levá-las muito longe. Eu olhei para logonexpert antes. Eu acredito que houve uma limitação, mas vou verificar novamente. Obrigado!
JohnZaj
+1 porque esta é realmente a única ferramenta que funcionou para mim / resolveu este problema em particular.
JohnZaj
0

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?

tumchaaditya
fonte
Vou tentar a abordagem do arquivo reg, suponho. No entanto, observe que isso não é um problema para o Winxp
JohnZaj
A abordagem do arquivo reg resulta no mesmo comportamento: está faltando o "1" para AutoAdminLogon e também a chave DefaultPassword. Se eu fizer o logoff, execute o mesmo arquivo reg da mesma forma, e depois faça o login novamente, ele ficará intacto como eu pretendia
JohnZaj
Eu estava falando sobre a ferramenta autologin ... arquivo reg vai ser mesmo .. além disso, tente evitar PsExec..alguma coisa parece suspeito lá ... em vez tentar scripts de inicialização do Windows: serverfault.com/questions/57798/…
tumchaaditya
PsExec não é o culpado. O mesmo comportamento ocorre com ele tirado da foto
JohnZaj
O PsExec apenas executa o arquivo como outro usuário; basicamente o mesmo que runas mas com recursos adicionais SYSTEM, executado no computador remoto). Entrando e executando manualmente como qualquer usuário faria a mesma coisa.
Bob
0

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á

JohnZaj
fonte
0

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.

user319563
fonte