Se você estiver utilizando a plataforma de virtualização Hyper-V da Microsoft para executar máquinas virtuais, provavelmente está familiarizado(a) com o uso do Gerenciador Hyper-V. Mas você sabia que é possível realizar mais tarefas em menos tempo com o módulo Hyper-V PowerShell?
Neste tutorial, você aprenderá como gerenciar VMs do Hyper-V com o PowerShell, incluindo a criação, remoção e também explorará instantâneos de VMs!
Pré-requisitos
Para este tutorial, você 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.
Conectando-se a um Host Hyper-V Remoto
Para trabalhar com o Hyper-V no PowerShell, é necessário poder se comunicar de alguma forma com o host Hyper-V. Você pode fazer isso localmente, executando os cmdlets do Hyper-V PowerShell, fornecendo o nome do host Hyper-V, ou pode usar o PowerShell Remoting para se conectar diretamente ao host Hyper-V.
Neste tutorial, você fará uma conexão persistente com o host Hyper-V e executará os comandos diretamente nele.
1. Abra o PowerShell em 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 interativamente no host Hyper-V remoto.
Se o seu cliente e o host Hyper-V estiverem associados ao mesmo domínio do Active Directory, você não precisa usar o parâmetro
Credential
.
3. Você será então 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 que seu prompt do PowerShell mudou 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
Supondo 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 Baseada 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 de VM a variáveis e, em seguida, 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, como mostrado abaixo.
2. Execute o cmdlet Get-VMMemory
fornecendo o nome da VM para reunir 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 Nome
, a geração da VM (Geração
) usando a propriedade Geração
da outra VM e a quantidade de memória do valor obtido da outra VM.

Listando VMs Existente com PowerShell
Agora que você tem pelo menos duas VMs criadas no host Hyper-V, vamos explorar como enumerar 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 de código 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 Estado
específico. Sem problemas. Para fazer isso, execute Get-VM
, que consulta todas as VMs, mas envie a saída para o cmdlet Where-Object
.
No exemplo abaixo, o Pipe ‘|’ limita a saída do Get-VM
apenas aos objetos VM com um Estado
de Executando
. Get-VM -NomeVM HYPER_old | Where-Object {$_.State -eq 'Executando'}

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 VMs.
Na sessão do PowerShell do host Hyper-V remoto:
1. Execute o cmdlet Start-VM
fornecendo o nome (Nome
) da VM criada anteriormente com o parâmetro -Nome

Agora que a VM está iniciada, pare-a usando o cmdlet Stop-VM
fornecendo o nome da VM com o parâmetro Nome
.
Assim que você executar o comando acima, verá a VM desligando conforme 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 Hyper-V remoto:
Execute o cmdlet Set-VM
para desligar automaticamente a VM HYPER_old que está em execução no momento. Use o parâmetro Name
para especificar a VM que deseja configurar e especifique Shutdown
como 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 remota do host do Hyper-V, talvez seja necessário salvar a VM que você criou 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 você deseja salvar deve estar em estado em execução.

Gerenciando Pontos de Verificação de VM do Hyper-V
Se precisar salvar o estado existente de uma VM antes de fazer alterações ou reverter alterações na VM, é recomendável aprender sobre pontos de verificação. Pontos de verificação são uma maneira conveniente de salvar rapidamente o estado do disco e da memória de qualquer VM do Hyper-V.
Enquanto estiver no 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 à antiga terminologia usada no Hyper-V 2012. Um snapshot é a mesma coisa que um ponto de verificação.

Assim que você tiver um ponto de verificação criado, você pode então usar o cmdlet Get-VMSnapshot
para recuperar todos os instantâneos armazenados no host Hyper-V. Você pode ver abaixo que a VM HYPER_old tem três pontos de verificação.

Conclusão
Se você trabalhou em todas as demonstrações deste 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é mesmo 100 VMs!
Que tipo de tarefas você acha que agora pode automatizar com o PowerShell e o Hyper-V?