Por que eu preciso disso :
Eu tenho o Pen Drive cheio de scripts em lote e outras ferramentas de diagnóstico. Tenho 75 PCs independentes (sem rede), principalmente com o Win-XP-Pro SP-2, em 2 laboratórios. Muitas vezes, preciso fazer login em cada PC com uma conta de administrador para configurar ou diagnosticar algo.
Portanto, quando inicio um PC, sempre que preciso selecionar manualmente o nome de usuário na tela de login e também digitar sua senha.
Agora eu quero entrar no Admin Acc. Automaticamente (programaticamente) se meu pen drive estiver conectado ao PC.
O que eu sei:
Eu sei que é possível executar scripts (arquivos em lote) antes do login do usuário no XP / Win7. Eu escrevi um arquivo em lotes e salvei no PC local. Configurei-o na política de grupo para executá-lo na inicialização do sistema (local do GPO: Configuração do Computador \ Configurações do Windows \ Scripts (Inicialização / Desligamento) \ Sartup ). Este arquivo em lote detectou com êxito 'se o pen drive está conectado ou não.
Eu tenho outro arquivo em lote (atualmente em branco) armazenado no Pen Drive.
O 1º arquivo em lote pesquisa em todas as unidades de C a Z pelo 2º arquivo em lote (login.bat) usando um loop, se o arquivo estiver presente, ele pressupõe que o pen drive esteja presente e depois chama o segundo arquivo em lote (login.bat) para continuar.
O que eu não sei:
Agora não sei qual deve ser o código do arquivo login.bat ou não sei 'como efetuar o login de forma pragmática.
Quais são as outras alternativas em mente:
Não é necessário usar apenas um arquivo em lotes. Também posso considerar 'se você tem alguma outra opção de login automático, como usar VB Script
ou qualquer outro executável de terceira parte',
Editar:
De acordo com esta pergunta Definir usuário para logon automático no Windows via script em lote, eu posso criar um script para modificar as entradas do Registro e permitir o logon automático. Mesmo que isso funcione, você precisa reiniciar o seu PC para que as alterações sejam aplicadas. O que é algo que eu quero evitar. Leva mais tempo para executar o script e reinicializar do que apenas fazer login pessoalmente.
Eu gostaria de poder fazer logon automaticamente, sob demanda. Isso significa que, depois que eu conectar o meu Pen Drive, o script poderá me conectar na conta de administrador sem reiniciar o PC.
Eu li na web que isso pode ser conseguido criando um arquivo dll GINA, mas não tenho experiência nesse campo. Alguma idéia de como isso pode ser implementado?
fonte
Respostas:
É possível fazer login programaticamente no Windows, mas não com um arquivo em lotes simples. Em vez disso, você precisa criar uma DLL usando C ++ (ou talvez C # - mas não é recomendado ). No Windows XP (e antes), esse recurso é chamado GINA .
(A partir do Vista, você precisa criar um provedor de credenciais.)
Referência: Login no Windows XP programaticamente
fonte
Achei acidentalmente a solução sozinho. Como mencionado na pergunta, eu tenho 2 scripts: o 1º reside no computador local e o 2º reside no Pen Drive. O 1º (.bat) é pré-configurado para ser executado na inicialização do sistema ( Veja como atribuir scripts de inicialização do computador? ) E chama o 2º (.vbs) se o pen drive estiver conectado.
Como funciona:
O funcionamento do 1º arquivo já está descrito na pergunta; e o trabalho do 2º script é muito simples, mas atende às minhas necessidades. Este script apenas envia pressionamentos de tecla na tela de login na mesma sequência que digito no teclado para Login. Aqui eu gostaria de compartilhar todo o código dos dois scripts. Espero que isso ajude muitos como eu, que não querem interferir nos arquivos do sistema operacional interno, como a GINA.
O código é:
1º script (script de logon)
Nome:
"Find PD.bat"
Localização:
"%SYSTEMROOT%\System32\GroupPolicy\Machine\Scripts\Startup\Find PD.bat"
Código
2º Script:
Nome:
"FillCred.vbs"
Localização:
"<PenDriveRoot>\OTHER\RESTORE\OTHER\FillCred.vbs"
Código:
Lembrar:
1) Isso é testado apenas no Windows XP.
2) Isso funcionará apenas se o Windows mostrar a tela de logon padrão (também conhecida como 'tela de boas-vindas')
3) Você precisa modificar o segundo script para suas seqüências de teclas.
4) Isso não funcionará se o seu sistema exigir pressionar Ctrl + Alt + Delete antes do login.
5) Essa é uma solução muito básica, mas você pode fazê-la avançar editando o 2º Script. isso funcionará enquanto o sistema permitir pressionamentos de teclas na tela de login.
Obrigado.
fonte