Esse script PowerShell foi projetado para desligar uma lista de máquinas usando o utilitário PsExec. Ele faz isso verificando se cada máquina na lista responde a um ping e, se houver resposta, executa o comando de desligamento. O script também mantém um registro das máquinas que foram desligadas e das que não puderam ser acessadas. Abaixo está uma descrição detalhada de cada parte do script.
Após executar o script todas máquinas serão desligadas em 15 segundos
Baixar o Psexec
Descompactar so arquivo em C:\PSTools
Criação do arquivo
Crie um txt com o nome ou IP das maquinas que gostaria de desligar
desktops.txt
wks01
wks01
wks03
Copie esse arquivo no ISE e execute o script
# Caminho do arquivo com a lista de máquinas troque caminho do arquivo se necessário
$arquivoMaquinas = "C:\Scripts\WKS\desktops.txt"
# Caminho do PsExec
$psexecPath = "C:\PSTools\PsExec.exe"
# Lê a lista de máquinas do arquivo
$maquinas = Get-Content -Path $arquivoMaquinas
# Loop para cada máquina na lista
$Maquinas_desligadas = @()
$Maquinas_semacesso = @()
foreach ($maquina in $maquinas) {
# Testa a conexão (ping) com a máquina
if (Test-Connection -ComputerName $maquina -Count 1 -Quiet ) {
Write-Output "Máquina $maquina está respondendo. Tentando desligar..."
# Executa o comando de desligamento usando PsExec
Start-Process -FilePath $psexecPath -ArgumentList "\\$maquina shutdown -s -t 15" -NoNewWindow -Wait
$Maquinas_desligadas += $maquina
Write-Output "Comando de desligamento enviado para $maquina."
} else {
Write-Output "Máquina $maquina não está respondendo. Pulando..."
$Maquinas_semacesso += $maquina
}
}
Write-Output "Maquinas Desligadas: $($Maquinas_desligadas.count)"
Write-Output "Maquinas SemAcesso : $($Maquinas_semacesso.count)"
댓글