top of page

Criando um script para desligar várias máquinas

Foto do escritor: Leandro CascãoLeandro Cascão

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)"


0 visualização0 comentário

Posts recentes

Ver tudo

댓글


bottom of page