Qual é uma boa maneira de reiniciar uma lista de computadores com Windows em um domínio do Windows? Supondo que o controlador de domínio do Windows não tenha um serviço para fazer isso, faça recomendações para um script.
Posso listar os nomes dos hosts e repetir os nomes dos hosts para enviar um comando de reinicialização para cada um? Posso obter uma lista de nomes de host do servidor DHCP em execução em uma caixa do Windows 2008 no tempo de execução do script?
Minhas linguagens de script preferidas, do mais ao menos desejável, são: PHP, javascript, Bash, Python (sei muito pouco), VB (sei, mas não gosto)
windows-server-2008
active-directory
a vapor
fonte
fonte
Respostas:
Se o GPO não é o seu problema, e você deseja ir com a segunda opção de Mark Henderson (lote
shutdown /m
), você pode facilitar seu trabalho enviando o desligamento em lote para que ele seja executado em paralelo e não em série. Requer o PowerShell por parte da estação de administração, mas é muito bacana .O que esse fragmento faz é gerar tantos trabalhos em segundo plano executados em paralelo quanto as máquinas em $ ComputerList. Isso pode fazer com que o desligamento do All The Things aconteça muito mais rápido.
fonte
-AsJob
é a magia pouco aqui.Você pode fazer isso com as Preferências de Diretiva de Grupo criando uma nova tarefa agendada que será executada todas as noites em um determinado horário. O comando para essa tarefa deve ser
shutdown /r /t 0
. Em seguida, você pode vincular esse GPO à UO ou UOs que possuem seus computadores.Você provavelmente desejará usar a opção "Executar este programa em um intervalo aleatório" definida entre 10 e 15 minutos. Ter todos os computadores ligados ao mesmo tempo pode ser ruim para os disjuntores, se você não tomar cuidado. Você também pode marcar a opção para executar a tarefa apenas se o computador estiver ocioso por x horas, caso alguém esteja puxando a noite toda. Você não quer matar uma noite inteira de trabalho reinicializando alguém que está tentando estabelecer um prazo.
fonte
Duas opções:
Crie uma tarefa agendada via GPO que seja executada
shutdown /r /f /t 0
oushutdown /g /f /t 0
em cada máquina que você deseja reiniciar. (confirashutdown /?
para mais detalhes.Crie um lote que é executado a
shutdown /m [computer name] /r /f /t 0
partir de um computador central (talvez o controlador de domínio?). Faça um loop para cada computador que você deseja reiniciar (altere o[computer name]
). Isso significa que o computador não será reiniciado se estiver inacessível por qualquer motivo e precisar ser executado a partir de uma conta com direitos para reiniciar os computadores.Você deve poder escrever um arquivo em lotes que percorre uma lista de computadores extraídos do diretório ativo e executa o comando, no entanto, não tenho tempo para escrever um hoje (e não estou disposto a testá-lo, mesmo que Eu escrevi, caso contrário, eu estaria preparado para reiniciar todos os computadores no meio do dia).
fonte
start cmd /c shutdown /m computer /r /f /t 0
) ou use alguma lógica para verificar se está online, caso contrário, o atraso para computadores offline pode ser significativo.A melhor maneira de fazer isso é demitir a pessoa que tem a idéia de que isso é necessário e fazer o que todas as outras pessoas fazem - não faça isso.
fonte