Conheça incríveis 10 cmdlets existentes no Hyper-V
O ambiente gráfico é habitualmente mais confortável e prático para diversas tarefas cotidianas, mesmo quando muitos deles possuem um ambiente em modo texto para executar diversas das mesmas atividades permitindo agilizar muitas delas, é o caso dos cmdlets no PowerShell para manipular máquinas virtuais no ambiente do Microsoft Hyper-V.
Os 10 comandos a seguir são apresentados sem ordem de relevância, embora possuindo ajuda, exibindo todos os parâmetros disponíveis sendo alguns com exemplo utilizados através do PowerShell 3.0
1.10:\> Get-VM
Possivelmente o comando mais utilizado e também mais simples, praticamente autoexplicativo executando o que sugere o nome:
Após consultar os parâmetros pela ajuda do comando, mais opções serão apresentadas então permitindo obter ainda mais detalhes da máquina virtual consultada:
Aplicando uma pequena série de combinações é possível elaborar filtros mais seletivos na análise das máquinas virtuais:
PS C:\> get-vm | where {$_.state -eq ‘running’} | sort Uptime | select Name,Uptime,@{N=“MemoryMB”;E={$_.MemoryAssigned/1MB}},Status
Executando novamente o comando inicial complementado com uma pequena série de parâmetros é exibido uma lista mais compreensível das máquinas virtuais analisadas:
2.10:\> Start-VM
Analisar máquinas virtuais tão interessante quanto controlar muitas das configurações disponíveis, desta maneira não poderia ser mais fácil iniciar uma máquina virtual:
PS C:\> start-vm chi-win8
Numa ocasião onde a máquina virtual por conta de suas configurações possa demorar a iniciar ou, precise iniciar duas ou mais de maneira rápida, acrescentando o parâmetro -asjob permite executar essas tarefas em segundo plano.
PS C:\> start-vm jdh* -asjob
3.10:\> Stop-VM
O próximo cmdlet é também muito interessante e igualmente fácil de utilizar, mesmo quando é preciso aplicar em múltiplas máquinas virtuais
PS C:\> stop-vm jdh*
O comando de desligamento é enviado direto ao sistema operacional convidado. Quando uma máquina virtual possuir aplicações em execução ou informações não-salvas o tempo para desligamento pode superar 5 minutos, a não ser quando for exibida a mensagem de computador bloqueado. Ainda assim é possível forçar o desligamento adicionando ao comando o parâmetro -force e, no pior dos cenários num exemplo delas não responderem a comandos ou mesmo pelo gerenciador gráfico, pode-se incluir um comando para simplesmente desligar sumariamente a máquina virtual:
PS C:\> stop-vm “XP Lab” –turnoff
Na condição de encerrar a máquina virtual mas salvando o estado de execução no momento do encerramento:
PS C:\> stop-vm chi-win8 –save –force
4.10:\> Checkpoint-VM
Este comando permite criar uma instância da máquina virtual escolhida, praticamente um ponto de restauração, muito útil quando precisar aplicar alterações que possam comprometer a máquina virtual:
PS C:\> checkpoint-vm -VMName “XP Lab”
Como o objetivo é apresentar maneiras de facilitar o gerenciamento de múltiplas máquinas virtuais, o PowerShell permite multiplicar as máquinas virtuais escolhidas, uma tarefa impossível de executar pelo gerenciador gráfico do Hyper-V:
PS C:\> get-vm chi* | checkpoint-vm -SnapshotName “Weekly Snapshot $((Get-Date).toshortdatestring())” –AsJob
Explicando o comando acima estar selecionando todas as máquinas virtuais com nomes iniciados em chi criando uma instância para cada uma nomeada weekly snapshot incluindo a data da execução. Por conta da possível demorar na criação destas instâncias foi adicionado o parâmetro para execução sem segundo plano.
5.10:\> Get-VMSnapshot
Seria improdutivo criar instâncias mas não poder gerenciá-las, aqui entra novamente o cmdlet do powershell permitindo antes de tudo identificar as instâncias existentes das máquinas virtuais:
PS C:\> get-vmsnapshot *
Depois, uma seleção mais aprimorada das instâncias:
PS C:\> get-vm “fp01″ | get-vmsnapshot
Aqui selecionando apenas uma instância a gerenciar:
PS C:\> get-vm chi-fp01 | get-vmsnapshot -Name weekly*
6.10:\> Remove-VMSnapshot
Toda instância criada fatalmente ocupará espaço físico em disco, a criação de inúmeras instâncias pode também tornar-se um problema com o tempo pela dificuldade de gerenciamento, com esse pensamento o exemplo abaixo demonstra como excluir determinadas instâncias utilizando uma seleção por data de criação:
PS C:\> get-vm chi* | Get-VMSnapshot -Name “weekly snapshot 4/20/2013″ | Remove-VMSnapshot –whatif
Mesmo assim antes de remover as instâncias escolhidas, o comando -whatif exibe a lista escolhida funcionando como uma pergunta sobre realmente excluir os itens selecionados.
Após uma breve revisão basta executar novamente o comando, desta vez omitindo o parâmetro -whatiff.
7.10:\> Test-VHD
Outro recurso de muita utilidade é poder avaliar a condição do disco virtual, de preferência periodicamente, por padrão o Yyper-V utiliza discos virtuais no formato .vhd e .vhdx. É um cmdlet capaz de identificar potenciais problemas com os discos virtuais, conforme finaliza a análise dos discos vai exibindo a mensagem True quando nenhum problema foi identificado, é possível efetuar múltiplas verificações:
PS C:\> dir F:\VHD\ | test-vhd
True
True
True
True
True
Mesmo assim no caso de identificado algum disco potencialmente problemático, no exemplo acima não é possível saber qual deles, por esse motivo adicionando alguns parâmetros fica mais fácil identificar qual disco virtual está potencialmente comprometido:
PS C:\> dir G:\VHDs | Select Name,@{n=“Test”;Expression={ Test-VHD $_.fullname}} | sort Test
Na imagem abaixo é possível acompanhar com mais precisão a análise dos discos virtuais:
8.10:\> Export-VM
Também indispensável a condição de exportar máquinas virtuais quando é necessário ou desejado transferir para outros locais físicos ou lógicos sem precisar refazer todas as configurações de instalação no novo ambiente. É um comando que irá exportar além da máquina virtual, suas configurações incluindo as instâncias relacionadas à ela.
É importante informar da pasta de destino ter nome diferente da máquina virtual a ser exportada, caso contrário o processo não poderá ser executado, como dica adicional considerando a possível demora nesta atividade é prudente adicionar o parâmetro -asjob, executando a exportação em segundo plano podendo ser utilizado em apenas uma máquina virtual:
PS C:\> export-vm “test rig” -Path E:\BackupFolder –asjob
Ou para várias máquinas virtuais:
PS C:\> export-vm jdh* -Path e:\backupfolder -asjob
9.10:\> Get-VMHost
É um comando que retorna informações sobre o equipamento hospedeiro, executando o Hyper-V:
10.10:\> Get-VMNetworkAdapter
De grande importância pois permite saber a configuração de rede atribuída à máquina virtual, assim como o endereço IPv4 e IPv6 quando habilitado:
PS C:\> Get-VMNetworkAdapter -VMName chi-dc04
É possível reduzir as informações desejadas, exibindo apenas os endereços de rede:
PS C:\> Get-VMNetworkAdapter -VMName chi-dc04 | Select -expand IPAddresses
Para o momento que precise listar a configuração de rede para todas as máquinas virtuais em execução:
PS C:\> get-vm | where { $_.state -eq ‘running’} | get-vmnetworkadapter | Select VMName,SwitchName,@{Name=“IP”;Expression={$_.IPAddresses | where {$_ -match “^172\.”}}} | Sort VMName
[ Conclusão ]
É inquestionável a facilidade de gerenciamento das máquinas virtuais pelos ambientes gráficos, permitem averiguar rapidamente uma grande quantidade de configurações e funcionamento dos diversos sistemas em execução, efetuar alterações pelo modo gráfico também permite entender como as alterações afetarão o cenário de maneira mais abrangente.
Entretanto costuma ser comum o gerenciamento ocorrer em apenas uma instância por vez, isso para evitar o consumo ou saturamento desnecessário dos recursos do administrador de máquinas virtuais. Utilizando os benefícios do PowerShell e seus diversos parâmetros, aqui aplicados no ambiente de máquinas virtuais, permite dinamizar muitas das atividades que seriam executadas individualmente porém aqui de maneira quase simultânea, considerando o ambiente texto podendo ser iniciado em várias instâncias, é possível executar alterações num ambiente e enquanto ele é atualizado, iniciar outra alteração noutro ambiente seja local ou em ambiente remoto.
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
**********************************************************************************
PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx
*****************************************