Comandos Essenciais do Hyper-V PowerShell: O Que São e Como Usá-los

Gerenciar ambientes Hyper-V pode ser uma tarefa desafiadora. Assim, você precisa de uma ferramenta de gerenciamento poderosa para configurar e controlar sua infraestrutura virtual a partir de um console central. Além da interface gráfica do usuário, o Hyper-V fornece uma interface de linha de comando usando o PowerShell para gerenciamento do Hyper-V.

Neste post do blog, descrevemos como o PowerShell funciona, quais comandos do PowerShell do Hyper-V podem melhorar o desempenho da máquina virtual (VM) e como essa ferramenta de CLI pode simplificar consideravelmente o processo de gerenciamento do Hyper-V.

O que é PowerShell?

O PowerShell é um framework de automação de tarefas e gerenciamento de configurações desenvolvido pela Microsoft, que inclui um shell de linha de comando e uma linguagem de script associada construída no .NET Framework e .NET Core.

Comandos do PowerShell, também conhecidos como cmdlets, podem ser usados para automatizar várias tarefas organizando vários cmdlets em um único script do PowerShell. A Microsoft desenvolveu mais de cem comandos principais do PowerShell que podem ser usados para realizar tarefas complexas, assim como tarefas básicas.

O que o PowerShell Pode Fazer?

O PowerShell pode ajudar os administradores do Hyper-V a automatizar rapidamente tarefas que gerenciam sistemas operacionais (Linux, macOS e Windows) e processos associados. Ao contrário das ferramentas GUI, o PowerShell permite que você gerencie o sistema inteiro usando apenas a linha de comando.

Além disso, você pode salvar os comandos do PowerShell do Hyper-V necessários em um arquivo de texto (com a extensão .ps1) e então executar esse script para realizar certas tarefas. Além disso, você pode agendar scripts do PowerShell para serem executados em um horário definido usando o Agendador de Tarefas.

Como Abrir o PowerShell

Existem algumas maneiras de executar o PowerShell no Hyper-V. Uma maneira fácil de acessar o PowerShell é se conectar diretamente a um servidor Hyper-V e lançá-lo a partir daí. Para se conectar remotamente a um host Hyper-V, é necessário garantir que o Remote Desktop esteja habilitado. Uma vez habilitado o Remote Desktop, podemos usar o utilitário Remote Desktop e nos conectar remotamente ao servidor como faríamos com qualquer GUI (interface de usuário gráfica) do Windows Server.

Abrindo o PowerShell a partir da GUI

Para abrir o PowerShell em um sistema operacional baseado em GUI, siga estas etapas:

  1. Você precisa clicar em Iniciar e digitar PowerShell na barra de pesquisa.
  2. Clique com o botão direito do mouse no ícone do PowerShell e selecione Executar como administrador para abrir o PowerShell em modo elevado.

Abrindo o PowerShell a partir da linha de comando

Para executar o PowerShell se estiver executando o Windows Server Core ou Hyper-V Server, siga estas etapas:

  1. Digite PowerShell no Prompt de Comando e pressione Enter.
  2. A Windows PowerShell session should start automatically in the Command Prompt window. A PS prefix is then added to the command prompt to indicate that you have started a Windows PowerShell session.
  3. Depois de estar no PowerShell, você pode usar comandos específicos do PowerShell do Hyper-V, que abordamos abaixo neste post.

Configurações Remotas

Para verificar as configurações de desktop remoto no Windows Server Core ou Hyper-V Server, você pode abrir o utilitário sconfig se ainda não estiver aberto e configurá-lo usando a opção 7. Além disso, uma vez conectado remotamente ao host Hyper-V, você pode usar a opção 15 para Sair para a Linha de Comando.

Uma vez lá, você está em um ambiente regular de cmd.exe – não no PowerShell. Para iniciar um ambiente do PowerShell, basta digitar powershell na linha de comando.

PowerShell Remoto

Usando o PowerShell, você também pode interagir remotamente com o Hyper-V. Em outras palavras, você pode executar comandos do PowerShell remotamente no host do Hyper-V sem estabelecer uma conexão de Área de Trabalho Remota.

Da estação de trabalho de administração na qual temos as ferramentas de gerenciamento do Hyper-V carregadas, podemos executar nossos comandos do Hyper-V. Primeiro, precisamos instalar as ferramentas do Hyper-V, incluindo esses cmdlets (cmdlets).

Install-WindowsFeature RSAT-Hyper-V-Tools

Depois de carregarmos as ferramentas, podemos executar os mesmos tipos de comandos usando o parâmetro -computername apontando para nosso host do Hyper-V como na captura de tela abaixo. Passamos o nome do nosso host para o cmdlet get-vm do PowerShell.

12 Comandos Essenciais do PowerShell do Hyper-V

Há uma série de comandos eficazes do PowerShell do Hyper-V que podem tornar o processo de gerenciamento do Hyper-V fácil e simples. Vamos ver como você pode usar diferentes comandos do PowerShell do Hyper-V.

Get-Command

Vamos começar com um comando do PowerShell do Hyper-V que é útil para usuários novos no PowerShell e que não sabem quais cmdlets devem ser usados e como. Ao executar o cmdlet Get-Command, você pode ver a lista completa de todos os cmdlets disponíveis (comandos do Windows PowerShell), funções e aliases instalados no computador.

No entanto, se desejar reduzir sua pesquisa e obter a lista de comandos do PowerShell do Hyper-V que correspondem a critérios específicos, você pode usar o cmdlet Get-Command *-VM para encontrar a lista de comandos que permitem controlar e configurar VMs.

Ao alterar o parâmetro VM para VHD, você pode obter a lista completa de cmdlets usados para gerenciar discos rígidos virtuais. Assim, você pode experimentar vários parâmetros de pesquisa para obter os resultados de que precisa.

Get-Help

Depois de decidir qual comando do PowerShell do Hyper-V deseja usar, você pode aprender mais sobre esse cmdlet. Para esse fim, você pode usar o cmdlet Get-Help. Por exemplo, para saber mais sobre o cmdlet Get-VM, digite o seguinte:

Get-Help Get-VM

Get-VM

O comando do PowerShell Get-VM permite ver todas as VMs disponíveis em um ou mais hosts do Hyper-V. Para ver todas as VMs no host do Hyper-V local, você deve executar o cmdlet Get-VM do PowerShell.

Na tela do PowerShell, você pode ver a lista de VMs disponíveis, incluindo seu nome, estado, uso de CPU, memória atribuída, tempo de atividade, status e versão.

Start-VM

Este cmdlet do PowerShell start VM específico ajuda você a iniciar uma VM. Para isso, execute o seguinte comando do PowerShell do Hyper-V:

Start-VM -Name 'Windows Server 2016'

Como resultado, a VM chamada Windows Server 2016 é iniciada no seu host local do Hyper-V. Vamos verificar se a VM realmente foi iniciada executando o cmdlet Get-VM.

Pode utilizar uma versão modificada do cmdlet PowerShell Start-VM para iniciar VMs apenas se os seus nomes começarem com Hyper-V:

Start-VM -Name Hyper-V*

Como pode ver, a VM chamada Hyper-V Server Desktop foi iniciada com sucesso. No entanto, outra VM (Hyper-V Server 2012) já está em execução e o PowerShell notifica-o disso.

Stop-VM

O cmdlet Stop-VM permite-lhe desligar ou desligar uma VM. Para este fim, pode executar o seguinte cmdlet:

Stop-VM -Name 'Windows Server 2016'

Como pode ver, a VM selecionada foi desligada com sucesso através do sistema operativo convidado.

Outro exemplo é que pode desligar as VMs cujos nomes começam com Hyper-V:

Stop-VM -Name Hyper-V* -TurnOff

Se verificar que a sua VM não está a responder, pode forçar o seu desligamento. Para fazer isso, execute o seguinte cmdlet PowerShell:

Stop-VM -Name 'Windows Server 2016' -Force

Note que o desligamento forçado é semelhante a retirar a energia de uma máquina física, o que pode resultar na perda de dados de aplicações não guardados. Neste caso, é recomendável que guarde a VM para evitar potenciais perdas de dados. Para este fim, precisa de executar o cmdlet Save-VM, que é equivalente a hibernar um computador físico:

Save-VM -Name 'Windows Server 2016'

Se quiser guardar as VMs cujos nomes começam com Hyper-V, execute o seguinte comando PowerShell do Hyper-V:

Get-VM -Name Hyper-V* | Save-VM

Checkpoint-VM

O cmdlet Checkpoint-VM ajuda a criar um ponto de verificação da VM Hyper-V (também conhecido como snapshot do Hyper-V). Execute o seguinte cmdlet para criar um ponto de verificação chamado Update1 da VM específica (Windows Server 2016):

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1

Para verificar se a VM foi criada com sucesso, use o seguinte comando do PowerShell do Hyper-V:

Get-VMSnapshot -VMName 'Windows Server 2016'

Por outro lado, se desejar excluir certos snapshots do Hyper-V, você pode usar o cmdlet Remove-VMSnapshot. Por exemplo, se quisermos excluir todos os snapshots da VM cujos nomes comecem com Testing, devemos executar o seguinte cmdlet:

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*

A captura de tela acima demonstra todo o processo de exclusão dos snapshots do Hyper-V selecionados.

Test-VHD

Este comando do PowerShell do Hyper-V destina-se a verificar se o arquivo de disco rígido virtual realmente existe e pode ser usado para implantação do Hyper-V. Este cmdlet é o seguinte:

Test-VHD -Path C:\Testing.vhd

No caso de o caminho VHD ser válido, você verá a seguinte saída na tela:

Para aprender mais sobre como gerenciar discos rígidos virtuais usando cmdlets do PowerShell, recomendamos que leia nossa postagem no blog sobre os fundamentos de trabalhar com arquivos VHD e VHDX do Hyper-V.

Measure-VM

Este comando do PowerShell do Hyper-V permite que você colete dados de utilização de recursos para uma VM específica. Por exemplo, execute o seguinte cmdlet para aprender sobre o uso da CPU, uso de RAM, capacidade de disco e tráfego de rede para a VM chamada Windows Server 2016:

Measure-VM -VMName 'Windows Server 2016'

Observe que o cmdlet Measure-VM só pode relatar os dados necessários depois que a medição de recursos foi habilitada em uma VM. Para habilitar a medição de recursos, use o seguinte comando do PowerShell do Hyper-V:

Enable-VMResourceMetering -VMName 'Windows Server 2016'

Get-VMNetworkAdapter

Outro cmdlet útil do PowerShell é Get-VMNetworkAdapter, que permite identificar os adaptadores de rede virtual da VM selecionada. Por exemplo, se você deseja encontrar adaptadores de rede virtual de todas as VMs, bem como do sistema operacional de gerenciamento, deve executar o seguinte comando do PowerShell do Hyper-V:

Get-VMNetworkAdapter –All

Se tudo estiver correto, você deverá ver as seguintes informações no seu console do PowerShell:

Usando comandos do PowerShell do Hyper-V, você pode realizar várias tarefas simples e complexas com seus adaptadores de rede do Hyper-V. Confira nosso guia sobre os cmdlets que podem ajudar a gerenciar e configurar adaptadores de rede virtuais em seu ambiente Hyper-V.

Update-VMVersion

O PowerShell tem um cmdlet que permite atualizar a versão da VM selecionada:

Update-VMVersion -Name 'TestVM'

Depois de executar o comando do PowerShell do Hyper-V, a VM chamada TestVM pode ser atualizada para a versão atual da VM.

Get-Process

Este comando do PowerShell do Hyper-V pode ajudá-lo a ver todos os processos atuais em seu computador local. Depois de executar o cmdlet Get-Process, você pode obter as seguintes informações em sua tela:

Esta tabela inclui informações sobre:

  • o número de identificadores que o processo abriu
  • a quantidade de memória não paginada que o processo está usando
  • a quantidade de memória paginada que o processo está usando
  • o tamanho do conjunto de trabalho do processo
  • a quantidade de memória virtual que o processo está usando
  • a quantidade de tempo do processador que foi alocada para todos os processadores
  • o ID do processo
  • o nome do processo

Para restringir a pesquisa e encontrar um processo específico, você deve digitar o nome ou ID do processo. Por exemplo, se você deseja saber como o Microsoft Word está funcionando atualmente, deve procurar na lista de todos os processos em execução e encontrar a linha com as informações sobre o Microsoft Word (ou seja, WinWord), incluindo seu ID de processo. Usando o ID do processo, você pode executar o seguinte cmdlet para obter os dados necessários:

Get-Process -ID 8892

Além disso, os dados sobre os processos WinWord atuais podem ser apresentados em outro formato, ou seja, como uma lista de propriedades. Execute este cmdlet para obter uma saída mais detalhada:

Get-Process WINWORD | Format-List *

Depois de obter os dados do processo, você pode executar os seguintes cmdlets:

  • Stop-Process permite que você pare um ou mais processos em execução.
  • Wait-Process permite que você espere por um ou mais processos em execução para serem interrompidos antes de habilitar qualquer outra entrada.
  • Start-Process permite que você inicie um ou mais processos no computador local.
  • Debug-Process permite que você anexe um depurador a um ou mais processos em execução no computador local.

Por exemplo, se você deseja iniciar o aplicativo Notepad do PowerShell, deve executar o seguinte cmdlet:

Start-Process -FilePath "notepad.exe"

Outro exemplo é quando você abriu o PowerShell no modo “normal”, mas precisa executar o PowerShell no modo elevado para obter acesso aos direitos administrativos. Nesse caso, execute o seguinte comando do PowerShell do Hyper-V:

Start-Process -FilePath "powershell" -Verb RunAs

Por outro lado, se um dos processos em execução parar de responder, você pode executar o cmdlet Stop-Process para interromper a aplicação com falha:

Stop-Process -Name "notepad"

Neste caso, todas as instâncias da aplicação Notepad no computador local são interrompidas.

Cada instância do Notepad possui seu próprio ID de processo. Se você quiser interromper uma instância específica do Notepad, deve usar o parâmetro ID no cmdlet Stop-Process. Para esse fim, você primeiro precisa executar o cmdlet Get-Process, encontrar os processos ativos necessários e identificar o ID do processo que deseja interromper.

Por exemplo, você pode interromper o processo específico do Notepad identificando seu ID de processo e executando o seguinte comando do PowerShell do Hyper-V:

Stop-Process -ID 5052

Como resultado, apenas o processo Notepad selecionado é interrompido.

Esses comandos do PowerShell permitem que você detecte um processo que está consumindo recursos indesejados e reduzindo o desempenho do Hyper-V para encerrar esse processo.

Where-Object

Este comando do PowerShell do Hyper-V permite filtrar objetos da pipeline e encontrar os dados exatos de que você precisa. Neste caso, você precisa criar um script do PowerShell no qual especifique quais objetos podem ser passados ao longo da pipeline. Usando vários critérios de pesquisa, você pode encontrar qualquer objeto no computador local.

Por exemplo, se você deseja localizar os processos que pararam de ser executados, use este cmdlet:

Get-Service | Where-Object {$_.Status -eq 'Stopped'}

Outro exemplo de uso do cmdlet Where-Object é quando você deseja encontrar um cmdlet específico. O seguinte comando do PowerShell do Hyper-V pode ajudá-lo a encontrar todos os cmdlets que começam com Wait:

Get-Command | Where-Object {$_.Name -like '*wait*'}

O próximo cmdlet Where-Object pode ajudá-lo a encontrar um processo específico apenas pelo seu nome. Ao executar o seguinte comando, você pode obter uma lista de todos os processos cujos nomes começam com sys:

Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}

Como Criar uma VM do Hyper-V Usando o PowerShell

Uma das poderosas funcionalidades integradas do Hyper-V é permitir o uso do PowerShell para operações de gerenciamento. Entre as muitas coisas que podemos fazer com o PowerShell no Hyper-V está a criação de máquinas virtuais. Vamos dar uma olhada em um conjunto de comandos do PowerShell do Hyper-V para criar novas VMs.

Comandos do PowerShell para criar uma nova VM

Para criar uma nova VM de Geração 2 com um novo disco rígido VHDX de 60 GB e conectá-lo a um switch virtual específico (neste caso, ” ExternalSwitch “), execute os seguintes comandos PowerShell no seu host Hyper-V.

  1. Criando uma VM:

    new-vm -Name "WSTEST" -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath "D:\hyper-v\virtualhard disks\WSTEST.vhdx" -NewVHDSizeBytes 60000000000 -Switchname "ExternalSwitch"

  2. Para adicionar uma unidade de DVD juntamente com uma imagem ISO para inicialização, podemos executar comandos adicionais:

    Add-vmscsicontroller -vmname WSTEST

    Add-vmdvddrive -vmnname WSTEST -controllernumber 1 -controllerlocation 0 -path D:\ISO\my.iso

  3. Se quisermos criar um disco de tamanho fixo e conectá-lo à nossa VM, podemos executar o seguinte para criar um VHDX de tamanho fixo e conectá-lo à nossa VM:

    novo-vhd -caminho "d:\hyper-v\discos rígidos virtuais.wstest.vhdx" -tamanhoembytes 60GB -fixo

    adicionar-unidade de disco rígido vm -nomedavm WSTEST -caminho "d:\hyper-v\discos rígidos virtuais\wstest.vhdx"

Conclusão

O PowerShell pode parecer intimidante no início, mas uma vez que você aprende a trabalhar com ele, pode rapidamente descobrir como usar comandos do PowerShell do Hyper-V e simplificar a administração em seu ambiente do Hyper-V. Apenas lembre-se de que, seja qual for a ferramenta que você use para gerenciar suas VMs, é necessário criar backups para evitar perda de dados e tempo de inatividade.

O NAKIVO Backup & Replication é uma solução de proteção de dados confiável e poderosa, que pode ajudá-lo a proteger ambientes VMware, Hyper-V, Nutanix, AWS EC2, Linux, Windows e Microsoft 365.

Source:
https://www.nakivo.com/blog/essential-hyper-v-powershell-commands/