Se estiver a utilizar a plataforma de virtualização Hyper-V da Microsoft para executar máquinas virtuais, provavelmente está familiarizado com o uso do Gestor do Hyper-V. Mas sabia que pode fazer mais em menos tempo com o módulo PowerShell do Hyper-V?
Neste tutorial, vai aprender como gerir máquinas virtuais do Hyper-V com PowerShell, incluindo a criação, remoção e também irá explorar instantâneos de VM!
Pré-requisitos
Para este tutorial, vai precisar dos seguintes itens listados abaixo:
- A Windows client to connect to a remote Hyper-V host. This tutorial uses Windows 10 Pro.
- A Hyper-V host with PowerShell Remoting enabled. The tutorial’s Hyper-V host is named HYPER and is in a workgroup but an Active-Directory joined client and host will work as well.
- A user account on the Hyper-V host in the local administrators group or in the Hyper-V Administrators group. This tutorial will use an account called localadmin.
Ligação a um Host Hyper-V Remoto
Para trabalhar com o Hyper-V no PowerShell, deve ser capaz de comunicar com o host Hyper-V de alguma forma. Pode fazê-lo localmente, executando os cmdlets do PowerShell do Hyper-V fornecendo o nome do host Hyper-V, ou pode utilizar a Remoção do PowerShell para se ligar ao próprio host Hyper-V.
Neste tutorial, vai estabelecer uma ligação persistente ao host Hyper-V e executar os comandos no próprio host Hyper-V.
1. Abra o PowerShell no seu computador local.
2. Execute o cmdlet Enter-PSSession
fornecendo o nome do host remoto do seu host Hyper-V para o parâmetro ComputerName
. Esta ação cria uma sessão interativa e permite que você execute comandos de forma interativa no host Hyper-V remoto.
Se o seu cliente e o host Hyper-V estiverem membros do mesmo domínio do Active Directory, você não precisa usar o parâmetro
Credential
.
3. Em seguida, você será solicitado a fornecer um nome de usuário e senha para se conectar ao host Hyper-V. Este nome de usuário e senha serão de um usuário administrativo local no host remoto. Uma vez conectado, você deverá ver seu prompt do PowerShell alterado para mostrar o nome do host do Hyper-V.
Agora você está pronto para começar a executar comandos!
Criando VMs do Hyper-V com PowerShell
Assumindo que você esteja agora conectado ao seu host Hyper-V usando o PowerShell Remoting, vamos começar a executar comandos criando uma VM do Hyper-V.
Criando uma VM Simples
Enquanto estiver na sua sessão PSRemoting conectada ao host Hyper-V remoto:
Execute o cmdlet New-VM
para criar uma nova VM. Ao criar uma VM com o cmdlet New-VM
, você tem muitas opções diferentes para escolher sobre como criá-la.
1. Neste exemplo abaixo, o tutorial está criando uma VM com:
- A name of MyVM (
HYPER
) - 512MB de RAM (
MemoryStartupBytes
)

Criando uma VM com Base em Outros Atributos de VM
Às vezes, você precisa criar uma VM com atributos semelhantes a outra VM. Você pode fazer isso, mas atribua vários atributos da VM a variáveis e use essas variáveis ao criar a nova VM. Como exemplo:
1. Execute Get-VM
para consultar os atributos de uma VM existente, atribuindo a saída a uma variável, conforme mostrado abaixo.
2. Execute o cmdlet Get-VMMemory
fornecendo o nome da VM para obter atributos (neste caso, memória) e atribua o valor da memória a uma variável.
3. Em seguida, crie uma nova VM com o cmdlet New-VM
fornecendo o Name
, a geração da VM (Generation
) usando a propriedade Generation
da outra VM, e a quantidade de memória obtida da outra VM.

Listando VMs Existentes com PowerShell
Agora que você tem pelo menos duas VMs criadas no host Hyper-V, vamos explorar como enumerar as VMs criadas. Para fazer isso:
1. Execute o cmdlet Get-VM
sozinho. Quando você executa sem parâmetros, Get-VM
consulta o host Hyper-V para todas as VMs existentes. Get-VM

2. Talvez você queira procurar apenas por uma única VM. Nesse caso, use o parâmetro -Name
. O comando abaixo está consultando o Hyper-V para a VM criada anteriormente chamada HYPER_old
. Get-VM -Name HYPER_old

Em seguida, talvez você precise encontrar todas as VMs que estão em um State
específico. Sem problemas. Para fazer isso, execute Get-VM
, que consulta todas as VMs, mas encaminhe a saída para o cmdlet Where-Object
.
No exemplo abaixo, o Pipe ‘|’ limita a saída do Get-VM
para apenas aqueles objetos de VM com um State
de Running
. Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}

Iniciando e Parando VMs
Neste momento, a VM criada anteriormente provavelmente está parada. Vamos mudar isso iniciando-a e depois aprendendo também como parar as VMs.
Na sessão do PowerShell do host remoto do Hyper-V:
1. Execute o cmdlet Start-VM
fornecendo o nome (Name
) da VM criada anteriormente com o parâmetro -Name
.

Agora que a VM está iniciada, pare-a usando o cmdlet Stop-VM
fornecendo o nome da VM com o parâmetro Name
.
Assim que você executar o comando acima, verá a VM desligando como visto na captura de tela abaixo;

Modificando VMs do Hyper-V
As VMs nem sempre permanecem iguais. Talvez você precise aumentar os recursos da CPU, ou a VM esteja consistentemente ficando sem memória. Nesse caso, o cmdlet Set-VM
é seu amigo.
Como exemplo de modificação de VMs existentes, na sessão do PowerShell do host remoto do Hyper-V:
Execute o cmdlet Set-VM
para desligar automaticamente a VM HYPER_old que está atualmente em execução. Use o parâmetro Name
para especificar a VM que deseja definir e especifique Shutdown
como o valor para o parâmetro AutomaticStopAction
para garantir que a VM seja desligada automaticamente corretamente quando o host do Hyper-V for desligado.
Salvando VMs do Hyper-V
Na sessão do PowerShell remoto do host do Hyper-V, você pode precisar salvar a VM que cria para preservar o estado da memória da VM para uso posterior. Para fazer isso, use o cmdlet Save-VM
com o parâmetro Name
especificando o nome da VM que deseja salvar.
Observe que a VM que deseja salvar deve estar em estado de Execução.

Gerenciando Pontos de Verificação do Hyper-V VM
Se precisar salvar o estado existente de uma VM antes de fazer alterações ou reverter alterações na VM, você deve aprender sobre pontos de verificação. Pontos de verificação são uma maneira útil de salvar rapidamente o estado do disco e da memória de qualquer VM do Hyper-V.
Enquanto estiver no seu host do Hyper-V, execute o cmdlet Checkpoint-VM
, fornecendo o nome da VM para salvar e um nome para o ponto de verificação.
O nome do parâmetro,
SnapshotName
, ainda faz referência à terminologia antiga usada no Hyper-V 2012. Um snapshot é a mesma coisa que um ponto de verificação.

Uma vez que você tenha criado um ponto de verificação, você pode então usar o cmdlet Get-VMSnapshot
para recuperar todos os snapshots armazenados no host Hyper-V. Abaixo, você pode ver que a VM HYPER_old possui três pontos de verificação.

Conclusão
Se você passou por todas as demonstrações neste tutorial, está bem encaminhado para gerenciar VMs do Hyper-V com o PowerShell. Agora, você deve ter o conhecimento necessário para gerenciar 1, 10 ou até 100 VMs!
Quais tipos de tarefas você acha que pode automatizar agora com o PowerShell e o Hyper-V?