Trabalhar com Hyper-V e Windows PowerShell

Agora que descrevemos os fundamentos da implantação do Hyper-V, criação e gerenciamento de máquinas virtuais, vamos explorar como você pode automatizar muitas dessas atividades com o PowerShell.

Retornar uma lista de comandos do Hyper-V

  1. Clique no botão Iniciar do Windows e digite PowerShell.
  2. Execute o seguinte comando para exibir uma lista pesquisável de comandos do PowerShell disponíveis com o módulo do PowerShell do Hyper-V.
Get-Command -Module hyper-v | Out-GridView

Você verá algo assim:

Captura de tela do Modo de Exibição de Grade Externa mostrando os campos Tipo de Comando, Nome, Versão e Origem.

  1. Para saber mais sobre um comando específico do PowerShell, use Get-Help. Por exemplo, executar o comando a seguir retorna informações sobre o comando Get-VM do Hyper-V.
Get-Help Get-VM

A saída mostra como estruturar o comando, quais são os parâmetros necessários e opcionais, e os aliases que você pode usar.

Captura de tela da tela Administrador do Windows Power Shell mostrando a saída de como estruturar os comandos.

Retornar uma lista de máquinas virtuais

Use o comando Get-VM para retornar uma lista de máquinas virtuais.

  1. No PowerShell, execute o seguinte comando:
Get-VM

Isso exibe algo assim:

Captura de tela da tela Administrador do Windows Power Shell mostrando a saída depois de inserir Get V M.

  1. Para retornar uma lista apenas das máquinas virtuais ligadas, adicione um filtro ao comando Get-VM. Um filtro pode ser adicionado usando o comando Where-Object. Para obter mais informações sobre filtragem, consulte a documentação Usando o Where-Object.
Get-VM | where {$_.State -eq 'Running'}
  1. Para listar todas as máquinas virtuais desligadas, execute o seguinte comando. Esse comando é uma cópia do comando da etapa 2 com o filtro alterado de “Em execução” para “Desligado”.
Get-VM | where {$_.State -eq 'Off'}

Iniciar e desativar máquinas virtuais

  1. Para iniciar uma máquina virtual específica, execute o comando a seguir com o nome da máquina virtual:
Start-VM -Name <virtual machine name>
  1. Para iniciar todas as máquinas virtuais desligadas, obtenha uma lista dessas máquinas e redirecione a lista para o comando Start-VM:
Get-VM | where {$_.State -eq 'Off'} | Start-VM
  1. Para desligar todas as máquinas virtuais em execução, execute isto:
Get-VM | where {$_.State -eq 'Running'} | Stop-VM

Criar um ponto de verificação de VM

Para criar um ponto de verificação usando o PowerShell, selecione a máquina virtual usando o comando Get-VM e redirecione isso para o comando Checkpoint-VM. Por fim, dê um nome ao ponto de verificação usando -SnapshotName. O comando completo é semelhante ao seguinte:

Get-VM -Name <VM Name> | Checkpoint-VM -SnapshotName <name for snapshot>

Criar uma máquina virtual

O exemplo a seguir mostra como criar uma máquina virtual no ISE (Ambiente de Script Integrado) do PowerShell. Este é um exemplo simples e pode ser expandido para incluir recursos adicionais do PowerShell e implantações de VM mais avançadas.

  1. Para abrir o ISE do PowerShell, clique em Iniciar e digite ISE do PowerShell.
  2. Execute código a seguir para criar uma máquina virtual. Consulte a documentação do New-VM para obter informações detalhadas sobre o comando New-VM.
 $VMName = "VMNAME"

 $VM = @{
     Name = $VMName
     MemoryStartupBytes = 2147483648
     Generation = 2
     NewVHDPath = "C:\Virtual Machines\$VMName\$VMName.vhdx"
     NewVHDSizeBytes = 53687091200
     BootDevice = "VHD"
     Path = "C:\Virtual Machines\$VMName"
     SwitchName = (Get-VMSwitch).Name
 }

 New-VM @VM

Conclusão e Referências

Este documento mostra algumas etapas simples para explorar o módulo do PowerShell do Hyper-V, bem como alguns cenários de exemplo. Para obter mais informações sobre o módulo do PowerShell do Hyper-V, consulte a Referência de Cmdlets do Hyper-V no Windows PowerShell.