Windows PowerShell: Crie máquinas virtuais Hyper-V

Você pode usar o Hyper-V e 3.0 de Windows PowerShell para criar, configurar e gerenciar facilmente suas máquinas virtuais.

Neil Tucker

Um dos melhores novos recursos do Windows 8 e Windows Server 2012 é Hyper-V versão 3.0. Não sendo restrito ao Virtual PC (com nenhum suporte para sistemas operacionais de 64 bits) abrirá muitas novas possibilidades, especialmente para aqueles que trabalham no cliente Windows 8. Se você precisa trabalhar com máquinas virtuais de Hyper-V (VMs) em uma base regular, sendo capaz de executá-los no mesmo ambiente de trabalho onde você fazer tudo o que é um grande motivo para atualizar para o Windows 8. Você se beneficiará também de ser capaz de usar imagens de 64 bits em uma área de trabalho do cliente.

Agora você pode usar um módulo de Windows PowerShell 3.0 nativo para configurar e gerenciar suas VMs. Isso é novo para o Hyper-V 3.0. Para fazer isso para o Hyper-V 2.0 em Windows Server 2008, você tinha que baixar o módulo de Windows PowerShell do CodePlex. Você pode encontrar instruções detalhadas sobre como fazer isso em um dos meu passado TechNet Magazine artigos, "criar máquinas virtuais de Hyper-V com o Windows PowerShell," que irá mostrar-lhe como criar VMs usando o módulo de Windows PowerShell 3.0 Hyper-V no Windows 8 ou o Windows Server 2012.

No desenvolvimento de um curso de Microsoft Learning sobre este assunto, eu criei um script do Windows PowerShell, projetado para ajudar você a criar VMs. Eu vou usar uma versão simplificada do que o script para mostrar como você pode criar rapidamente seu próprio. Eu também vou olhar maneiras de conseguir o melhor desempenho de VMs usando corretamente algumas das opções de configuração disponíveis. Primeiro, você precisa instalar a função Hyper-V no sistema.

Configurar o Hyper-V

Siga estas etapas para instalar a função Hyper-V no Windows 8 ou no Windows Server 2012. O sistema deve usar um processador de 64 bits, suporte a virtualização assistida por hardware e a prevenção de execução de dados (DEP) imposta por hardware. Você terá que executar estas etapas a partir de um console do Windows PowerShell aberto com credenciais de administrador total:

  1. Execute o comando Enable-WindowsOptionalFeature –Online –FeatureName Microsoft-Hyper-V (ou Dism /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V/All).
  2. Verificar que não havia nenhum erro.
  3. Encerre e reinicie o computador.
  4. Faça logon novamente no sistema com uma conta de administrador.

O módulo de Hyper-V do Windows PowerShell é instalado quando o papel é configurado. Para usar os cmdlets, adicione o módulo para um console do Windows PowerShell (Hyper-V do módulo de importação). Então você terá que verificar se os cmdlets são disponíveis (Get-Command – module Hyper-V). Antes de usar quaisquer cmdlets, verificar que o serviço de "Gerenciamento de máquina Virtual do Hyper-V" está em execução (VMMS Get-Service). Você deve executar todos os cmdlets de Hyper-V do Windows PowerShell com privilégios de administrador.

Configurar seus VMs

O script mostrado na Figura 1 cria e configura duas VMs. Usar variáveis torna mais fácil de personalizar e padronizar o processo. Para automaticamente instalar o sistema operacional, crie um arquivo Autounattend XML no disco que a imagem ISO do sistema operacional vai usar. Se você não estará usando este método de instalação, remova os cmdlets Set-VMDvdDrive e FloppyDiskDrive de conjunto. Você pode usar New-VM para criar cada VM. Este script também irá criar um DVD e drive de disquete, mesmo se eles não são designados.

Figura 1 este script irá ajudá-lo a criar e configurar duas VMs.

# This script configures the Hyper-V machines used for the 50331 Course. # PowerShell 3.0 and Windows Server 2012 or Windows 8 Pro are required to perform this setup. # The C:\ Drive should have at least 200GB of free space available. # All the files on the 50331 Student CD should be copied to C:\Labfiles before performing this setup. # Variables $CLI1 = "50331-CUSTOM-CLI" # Name of VM running Client Operating System $SRV1 = "50331-CUSTOM-SRV" # Name of VM running Server Operating System $CRAM = 2GB # RAM assigned to Client Operating System $SRAM = 1GB # RAM assigned to Server Operating System $CLI1VHD = 80GB # Size of Hard-Drive for Client Operating System $SRV1VHD = 40GB # Size of Hard-Drive for Server Operating System $VMLOC = "C:\HyperV" # Location of the VM and VHDX files $NetworkSwitch1 = "PrivateSwitch1" # Name of the Network Switch $W7ISO = "C:\Labfiles\Windows7.iso" # Windows 7 ISO $W7VFD = "C:\Labfiles\Windows7.vfd" # Windows 7 Virtual Floppy Disk with autounattend.xml file $WSISO = "C:\Labfiles\W2K8R2.iso" # Windows Server 2008 ISO $WSVFD = "C:\Labfiles\W2K8R2.vfd" # Windows Server 2008 Virtual Floppy Disk with autounattend.xml file # Create VM Folder and Network Switch MD $VMLOC -ErrorAction SilentlyContinue $TestSwitch = Get-VMSwitch -Name $NetworkSwitch1 -ErrorAction SilentlyContinue; if ($TestSwitch.Count -EQ 0){New-VMSwitch -Name $NetworkSwitch1 -SwitchType Private} # Create Virtual Machines New-VM -Name $CLI1 -Path $VMLOC -MemoryStartupBytes $CRAM -NewVHDPath $VMLOC\$CLI1.vhdx -NewVHDSizeBytes $CLI1VHD -SwitchName $NetworkSwitch1 New-VM -Name $SRV1 -Path $VMLOC -MemoryStartupBytes $SRAM -NewVHDPath $VMLOC\$SRV1.vhdx -NewVHDSizeBytes $SRV1VHD -SwitchName $NetworkSwitch1 # Configure Virtual Machines Set-VMDvdDrive -VMName $CLI1 -Path $W7ISO Set-VMDvdDrive -VMName $SRV1 -Path $WSISO Set-VMFloppyDiskDrive -VMName $CLI1 -Path $W7VFD Set-VMFloppyDiskDrive -VMName $SRV1 -Path $WSVFD Start-VM $SRV1 Start-VM $CLI1

Usando os parâmetros para New-VM, você pode dar cada imagem um nome, localização, alocação de memória, disco rígido e conexão de rede. Você deve definir o switch de rede virtual (nova VMSwitch) antes de criar uma conexão de rede na máquina virtual. O ambiente do Hyper-V pode suportar múltiplos switches de rede virtuais com o mesmo nome, então verificar que seu interruptor de rede escolhida não existe usando a variável $TestSwitch, antes de criar um novo.

Você ainda pode configurar memória e disco rígido para melhorar o desempenho do seu sistema. Usar Set-VMMemory para definir as configurações de memória dinâmica (por exemplo, você pode atribuir configurações de memória mínimo, inicialização e máximo). Isto é muito útil em sistemas que suportam múltiplas imagens.

Use o cmdlet New-VHD para criar um disco fixo ou dinâmico, usar base e diferenciação de opções de drive, ou gerenciar tamanhos de bloco e o setor. Discos dinâmicos são o padrão. Você pode criar esses rapidamente, mas discos fixos fornecem um melhor desempenho.

Independentemente das opções que você usar para configurar o disco rígido, você deve aproveitar o novo formato VHDX. Você pode não precisar de um disco rígido de 64 TB (o formato de disco rígido Virtual ou VHD, é limitado a 2 TB), mas os novos recursos de log significam menos erros, se houver uma falha de sistema ou energia.

Documentação da Microsoft indica que o VHDX drives podem correr mais rápido que VHDs. (Eu confirmei isso nos testes que eu corri em dois computadores). Você também pode converter VHDs existentes VHDX ou vice-versa usando Convert-VHD ou o Gerenciador do Hyper-V.

Como você pode ver, usando este script para criar VMs com o Windows PowerShell é relativamente fácil e requer apenas alguns cmdlets. Para qualquer um que trabalha com imagens em uma plataforma de cliente ou servidor, isso abre novas possibilidades ao gerenciar um teste virtual, segurança ou o ambiente de implantação.

Neil R. Tucker

Neil R. Tucker é um MCT com anos de experiência ensinando aulas de Windows PowerShell, SQL Server e sistema operacional Windows. Ele é o autor do curso Microsoft Learning 50331, escrito para técnicos de suporte do Windows 7 Desktop. Ele pode ser contatado através de seu Web site em neiltucker.com.

Conteúdo relacionado