Criar máquinas virtuais para laboratórios sempre foi uma tarefa bem árdua, se for um laboratório que necessita criar várias máquinas virtuais, o tempo de criação e configuração do laboratório pode demorar muito tempo. Para montar um laboratório temos que configurar em cada máquina virtual sua rede virtual, criar o VHDX, instalar o sistema operacional, atualizar o sistema operacional, alterar as configurações da máquina virtual para os parâmetros que você necessita. Como isso se perde muito tempo em uma tarefa, além do grande espaço em disco que é utilizado na criação das máquinas virtuais utilizando o método tradicional de criação de discos VHDX de tamanho fixo ou expansão dinâmica.
Com alguns poucos comandos e parâmetros é possível automatizar o processo de criação de uma máquina virtual utilizando o Windows Powershell, podemos configurar várias máquinas virtuais em segundos, utilizando pouco espaço em disco de um VHDX do tipo diferenciação, onde um disco está associado, em uma relação pai-filho, todas as alterações são feitas no disco filho, deixando o disco pai intacto.
Explicando o script
Para começar a automatizar a criação de máquinas virtuais, primeiro devemos fazer o download do script aqui, após o download do script vamos entender a sua estrutura de criação.
Abra o Windows Powershell SE como Administrador, em seguida abra o script clicando no Menu Arquivo em seguida Abrir.
Agora vamos a análise do script, devemos focar somente em duas partes do script.
Parte 1
Locais onde encontra-se os arquivos TXT que contém os locais onde serão armazenadas as máquinas virtuais e onde também estão localizados os VHDX modelos que serão utilizados como base para criação das máquinas virtuais.
$caminhovm = Get-Content “D:\Maquinas Virtuaiscaminho-vms.txt”
Está linha do script informamos o local onde encontra-se o arquivo TXT que contém o local onde queremos armazenar as máquinas virtuais que serão criadas.
Dentro do arquivo TXT escreva o caminho que deseja utilizar para armazenamento das máquinas virtuais que serão criadas.
Exemplo: Vou armazenar o arquivo TXT no caminho D:\Maquinas Virtuais, aonde esse arquivo TXT contém escrito em sua primeira linha o caminho onde serão armazenadas as máquinas virtuais que serão criadas.
Então escrevo no arquivo caminho-vms.txt o local de armazenamento das máquinas virtuais, neste exemplo será C:\Hyper-V-LAB. Salve o arquivo TXT após a alteração.
Observação: Essa pasta já deve estar criada no C:\.
$caminhomodelo = Get-Content “D:Maquinas Virtuaiscaminho-modelo.txt”
Agora está linha do script informamos o local onde contém o arquivo TXT que contém o local onde estão armazenados os VHDX modelos para criação das máquinas virtuais.
Exemplo: Vou armazenar o arquivo TXT no caminho D:Maquinas Virtuais, aonde esse arquivo TXT contém escrito em sua primeira linha o caminho onde serão armazenados os arquivos VHDX modelos para criação das máquinas virtuais.
Então escrevo no arquivo caminho-modelo.txt o local de armazenamento dos arquivos VHDX modelos, neste exemplo será C:\Modelos VHDX. Salve o arquivo TXT após a alteração.
Observação: Essa pasta já deve estar criada no C:\.
Pronto já temos configurado a primeira parte do script. Fique tranquilo com relação a criação do VHDX modelo, será demostrado no vídeo como criar um VHDX modelo.
Agora temos que atentar para a linha onde contém o comando da criação da máquina virtual, será nesta linha que configuramos os parâmetros para criação da máquina virtual.
New-VM -Path $caminhovm -VHDPath “$caminhovm$nomedavm$nomedavm.vhdx” -Generation 2 -MemoryStartupBytes 1Gb -Name $nomedavm -SwitchName $comboBox1.Text | Set-VMMemory -DynamicMemoryEnabled $false Get-VM $nomedavm | Set-VMProcessor -count 2
O comando New-VM cria máquina virtual.
Já o parâmetro -Generation especifica qual será a geração da máquina virtual, escolha entre a geração 1 ou 2.
Observações: Após a criação da máquina virtual sendo ela geração 1 ou 2 não é possível alterar a sua geração.
Máquinas virtuais geração 2 não podem executar alguns sistemas operacionais convidados, como os seguintes:
- Windows Server 2008 R2
- Windows Server 2008
- Windows 7
- Todos os sistemas operacionais de 32 bits
O parâmetro -MemoryStartupBytes especifica a quantidade de memória, em bytes, a ser atribuída à máquina virtual.
No script já está configurado para a máquina virtual ter 1GB de memória atribuída. Altere do jeito que você necessitar.
Set-VMMemory -DynamicMemoryEnabled $false esse parâmetro especifica se devemos utilizar ou não memória dinâmica.
Se alterarmos o parâmetro de $false para $true temos que especificar qual será a quantidade mínima e máxima de memória dinâmica.
Exemplo: Habilitar a memória dinâmica, colocando o máximo de 2GB e o mínimo de 512MB.
Set-VMMemory -DynamicMemoryEnabled $True -MaximumBytes 2GB -MinimumBytes 512MB
Observação: Caso for utilizar Nested Virtualization (Virtualização Aninhada) no Hyper-V deixe o parâmetro Set-VMMemory -DynamicMemoryEnabled como $false.
Para saber mais sobre Nested Virtualization (Virtualização Aninhada) acesse aqui para acessar o artigo do meu amigo Vinicius Mozart, onde ele ensina como habilitar este recurso.
Agora vamos ao último parâmetro que é Set-VMProcessor -count podemos alterar o número de processadores virtuais que vamos utilizar em nossa máquina virtual.
Exemplo: A máquina virtual vai utilizar apenas 1 processador virtual, alteramos o parâmetro -count de 2 para 1 o comando vai ficar assim Set-VMProcessor -count 1.
Vídeo
Agora que você já aprendeu como funciona o script, vamos ao vídeo onde demostro como criar o VHDX modelo para criação da máquina virtual e a execução do script.
Inscreva-se no meu canal do YouTube ative o sininho para receber as notificações!
Há 10 anos atuo na área de TI focado em suporte e administração de infraestrutura, especializado em plataformas Microsoft. Tenho grande experiência em troubleshooting, implantação, configuração e administração de funções e recursos de tecnologia Microsoft. Formado em Redes de Computadores pela faculdade Estácio de Sá de Belo Horizonte.
Comecei a compartilhar o meu conhecimento no ano de 2012, fazendo artigos e vídeos para o meu Blog. Em 2017 comecei a escrever artigos para o portal Cooperati, em 2020 fui premiado como Microsoft MVP, na categoria Cloud and Datacenter Management.
Sou apaixonado em compartilhar o meu conhecimento. Meu lema é: O conhecimento só é válido quando compartilhado.