Eu tenho um domínio da Microsoft (principalmente 2008r2\7).
Estou procurando uma maneira de executar um script imediatamente após (reiniciar após) ingressar em um domínio (sem exigir login do usuário) e até agora falhei.
Além disso, quero que ele seja executado apenas uma vez, portanto, agendar uma tarefa repetida não é uma opção.
Parece-me um desperdício deixá-lo funcionar repetidamente.
Já tentei um GPO com script de inicialização, mas quando o computador recebe o GPO já está bem depois da inicialização.
Também tentei um GPO com uma tarefa agendada (com gatilhos diferentes), mas eles também não funcionaram:
o gatilho "Na inicialização" falha igual ao script de inicialização.
"Na criação da tarefa" falha, acho que porque não foi criado da maneira usual.
"No horário" é irrelevante, pois preciso que ele seja executado logo após a adesão (e definir uma data que já havia passado não funcionou).
Não foi possível encontrar nenhuma chave de registro relevante, mas presumo que elas teriam o mesmo problema que o script de inicialização do GPO.
A única ideia que pode fazer o que preciso é anexar uma tarefa ao evento relevante nos DCs e executar o script remotamente.
Alguma sugestão melhor?
--Editar--
Pelas respostas (que são ótimas, mas não são suficientes), tenho alguns pontos a acrescentar:
1. A pergunta se aplica a ambos os servidores (2008r2\2012\2012r2), embora eu tenha testado apenas em 2012r2.
2. Estou procurando uma solução mais parecida com a runonce, o que significa que não quero que ela seja executada indefinidamente até que alguma condição seja atendida.
3. Usamos imagens para implantar servidores e estações de trabalho, mas não posso usar uma solução que envolva editá-los porque a) Isso exigiria que eu os atualizasse sempre que precisasse alterar algo em meu script b) BYODs.
4. Não usamos script de adesão (simplesmente não precisamos de um...), então começar a usar um me parece um desperdício. Além disso, há alguns problemas com ele (por exemplo, onde devo colocá-lo? Na imagem? Em um local compartilhado? E com BYODs? Isso anularia o ponto 3).
Obrigado.
Responder1
Adicione uma chave de registro personalizada à sua imagem de construção, apenas um simples valor '1' em algum lugar.
Adicione uma tarefa agendada que verifique o valor da chave de registro na imagem de construção, adicione verificações para seu nome de domínio nesta chave de registro
HKLM\System\CurrentControlSet\Services\Tcpip\Parâmetros
Se encontrar ambos, execute seu script e altere a chave de registro personalizada para 0 ao concluir. Execute esta tarefa na inicialização.
Você pode deixar esta tarefa como está ou ter um gpo que exclua a tarefa agendada. No entanto, se você deixá-lo no lugar e precisar executar novamente o script, basta alterar a chave do registro de volta para 1 e reinicializar.
Uma pequena preocupação de segurança é que a tarefa agendada precisará ser executada como uma conta de administrador local.
Responder2
Você não precisa reiniciar depois de ingressar no domínio? Se você criou um script de inicialização, ele será aplicado logo após a reinicialização, quando carregar os outros objetos de política de grupo.
Como você está ingressando no domínio agora? Você também pode integrar a adesão ao domínio ao seu script. Com o Powershell isso é feito com Add-Computer, na linha de comando você pode usar netdom.
Normalmente você integraria isso em sua sequência de tarefas, se estiver usando uma ferramenta de gerenciamento de configuração.
Responder3
Como está sendo realizada a junção? Interação manual da GUI ou por meio de um script? Se for um script, adicione uma linha ao script de junção para que seu segundo script seja executado por meio da chave de registro RunOnce.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce https://msdn.microsoft.com/en-us/library/windows/desktop/aa376977%28v=vs.85%29.aspx
--- COMEÇAR A EDITAR ---
Dó! Certo
Pensando no seu comentário sobre o atraso na aplicação do GPO ... Eu trabalho principalmente no sistema operacional do servidor que faz processamento síncrono de GPO. As estações de trabalho são assíncronas. Tente isto para ficar assíncrono:
Em seu processo/imagem de construção, tente desabilitar "Otimização de logon rápido"
https://technet.microsoft.com/en-us/magazine/gg486839.aspx
Configuração do Computador\Modelos Administrativos\Sistema\Logon
Sempre aguarde a rede na inicialização e logon do computador = Ativado
Criar um script de inicialização do GPO GPO:
Configuração do computador/Políticas/Configurações do Windows/Scripts/Inicialização
Dentro do script que você define lá, use este código:
$built = gwmi Win32_OperatingSystem | foreach {[System.Management.ManagementDateTimeconverter]::ToDateTime($_.InstallDate)}
if ($built -gt (get-date).addHours(-4)) {
"do something"
}
Responder4
Eu trabalhava em escolas.
E automatizamos o processo de junção e script (ter uma imagem perfeita para implantar que dure anos pode ser utópico). Então usamos WDS/MDT para depositar.
Preenchemos o arquivo de resposta .xml, para que nossas imagens multicast implantadas sejam unidas em uma instalação de OU (Unidade Organizacional) e aplicamos o GPO para o script final e saímos da instalação da OU.
Dessa forma só temos que renomear a estação de trabalho com o nome correto, colocá-la na UO correta.