Estou tentando criar mais máquinas virtuais de 'autoatendimento' para os desenvolvedores usarem. Um dos requisitos é depois de executar um script para inicializar a máquina e associá-la ao domínio, para que o controlador de domínio local da máquina replique imediatamente seus dados (como o nome da máquina recém-registrada) de volta para o controlador de domínio corporativo principal. p>
Isso deve permitir que um desenvolvedor direcione imediatamente a máquina pelo nome DNS em vez do endereço IP.
O script:
- Capture de forma interativa as credenciais de administrador de domínio
- Junta-se ao domínio
- Configurar algumas coisas do servidor local
- envia um relatório por e-mail
O script de inicialização é projetado para ser chamado de forma interativa por um administrador de domínio (sysadmin) para configurar a máquina para um desenvolvedor, mas depois será incorporado em um unattend.xml.
Eu tentei as seguintes abordagens:
1.Conecte via WMI a um controlador de domínio com credenciais de administrador de domínio e execute o repadmin para forçar a replicação
Isso não parece funcionar porque o repadmin não gosta de ser chamado pelo WMI, ele afirma não ter as permissões devido a como ele interpreta as credenciais pelo WMI
$remotesession = new-pssession -computername "localdomaincontroller" -Credential $credential
invoke-command -ScriptBlock {
Repadmin /replicate corporatedomaincontroller localdomaincontroller 'DC=company,DC=com'
} -Session $remotesession
Remove-PSSession -Session $remotesession
2.Ron repadmin localmente
Então eu instalei o repadmin em meus modelos de servidor, mas isso parece não funcionar a menos que você reinicie a máquina primeiro. Desde que eu quero todas as tarefas lançadas a partir de um único script, isso parece não funcionar.
Start-Process powershell.exe -Credential $credential "Repadmin /replicate corporatedomaincontroller localdomaincontroller 'DC=company,DC=com'"
Então, alguém pode aconselhar, como eu posso juntar uma máquina a um domínio E forçar a replicação de DC a partir de um único script?