maintitleConheç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:

figura1

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:

figura2

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:

figura3

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 *

figura4

Depois, uma seleção mais aprimorada das instâncias:

PS C:\> get-vm “fp01″ | get-vmsnapshot

figura5

Aqui selecionando apenas uma instância a gerenciar:

PS C:\> get-vm chi-fp01 | get-vmsnapshot -Name weekly*

figura6

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.

figura7

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:

figura8

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:

figura9

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

figura10

É possível reduzir as informações desejadas, exibindo apenas os endereços de rede:

PS C:\> Get-VMNetworkAdapter -VMName chi-dc04 | Select -expand IPAddresses

figura11

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

figura12

[ 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.



Conheça incríveis 10 cmdlets existentes no Hyper-V
Iperius Backup Brasil
*****************************************

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

*****************************************

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*****************************************

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

*****************************************