Executando Script PowerCLI no agendador de tarefas do Windows

A possibilidade de podermos agendar a execução de script PowerCLI utilizando o agendador de tarefas do Windows é muito legal. Eu comecei a pesquisar sobre este assunto baseado na necessidade de desligar automaticamente todas as máquinas virtuais e todos os hosts ESXi de um Cluster em um dia e horário específicos.

Primeiramente é necessário ter instalado o VMware PowerCLi ou PowerCLI Core, depois vamos verificar se o seu PowerShell conhece os comandos do PowerCLI, para isso vamos executar o script de inicialização Initialize-PowerCLIEnvironment.ps1 localizado em C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts.

Lembrando que antes de cada script executado pelo PowerShell é necessário incluir o script de inicialização Initialize-PowerCLIEnvironment.ps1.

Para testar vamos executar um script bem simples.

cd "C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts"
.\Initialize-PowerCLIEnvironment.ps1

$vCenter = "192.168.2.9"
$vCuser = "Administrator@vsphere.local"
$vCpass = "VMware1!"

Connect-VIServer $vCenter -u $vCuser -password $vCpass | Out-Null

Get-VMHost | Select Name,ConnectionState,Version >> c:\temp\vmhost.txt

Após criar o script, abra o PowerShell e execute-o. Se você conseguir visualizar as informações abaixo e o arquivo vmhost.txt em C:\temp foi criado, é por que está funcionando.

Feito isso, basta abrir o agendador de tarefas do Windows e criar uma nova tarefa. Na aba Ações é onde apontamos para o script que será executado

Programa/script: C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe

Adicione argumentos (opcional): “& ‘C:\Scripts\ScriptTest.ps1′”

Observação: por causa da fonte utilizada alguns caracteres podem ser convertidos, por isso deixei uma imagem abaixo com a linha correta.

É isso, bons scripts e até a próxima!

Posts Relacionados

Ricardo é especialista em TI e apaixonado por Virtualização. É graduado em Sistemas de Informação e pós-graduado em Gestão de TI, além de possuir várias certificações Microsoft e VMware.

3 comentários sobre “Executando Script PowerCLI no agendador de tarefas do Windows

  1. Olá tudo bem!
    Estou com a mesma demanda aqui na empresa (desligar e ligar, vm’s e esxi automaticamente).

    Você por acaso postou esta script aqui no blog (procurei e não achei)?
    Se não, poderia me dar um help sobre como construir esta script? Sou leiga em programação, mas como cuido da infra preciso fornecer esta solução.

    Desde já obrigada

    1. Olá Diamar, assim como qualquer outra linguagem de programação, é fundamental entender a lógica. Recomendo que você procure a documentação do PowerCLI, principalmente nos comandos “Stop-VMHost” e “Stop-VMGuest”. Segue abaixo um exemplo de script para desligar o ambiente. Abraço e bons estudos!

      # Conecta no vCenter Server
      Connect-VIServer 192.168.2.9 –User Administrator@vsphere.local –Password ‘M1nhaS3nhaS3gur@’

      # Desliga VMs do Cluster CL-SRV-iSCSI
      $VMs1 = Get-Cluster “CL-SRV-iSCSI” | Get-VM
      foreach ( $vm in $VMs1 ) { Stop-VMGuest -VM $vm -Server 192.168.2.9 -Confirm:$false }

      Start-Sleep -Seconds 60

      # Desliga Hosts do Cluster CL-SRV-iSCSI
      $Hosts1 = Get-Cluster “CL-SRV-iSCSI” | Get-VMHost
      foreach ( $vm2 in $Hosts1 ) { Stop-VMHost -VMHost $vm2 -Server 192.168.2.9 -Force -Confirm:$false }

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *