Compartilhar via


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. Selecione o 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.

  2. 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'}
    
  3. 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>
    
  2. 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
    
  3. Para desligar todas as máquinas virtuais em execução, execute o seguinte comando:

Get-VM | where {$_.State -eq 'Running'} | Stop-VM

Criar um ponto de verificação de máquina virtual

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.