Script Migrate Virtual Machine Network Adapter
Este script é extremamente útil para migrar as interfaces de rede das máquinas virtuais de E1000 / E1000E para VMXNET 3. Sei que quando é necessário efetuar esta modificação, muitos especialistas optam por editar o arquivo VMX de cada máquina virtual ou até mesmo remover a interface de rede E1000 / E1000E e adicionar uma nova interface de rede VMXNET 3.
O script que escrevi consegue ler as máquinas virtuais que você escolher (pode buscar no datacenter, cluster, resource pool ou folder), verifica se todas as máquinas virtuais estão desligadas e também se todas possuem pelo menos uma interface de rede E1000, por fim lhe questiona se deseja continuar para a migração, basta aceitar para que as modificações nas máquinas virtuais sejam iniciadas. Assim, a interface de rede será migrada e o MAC Address continuará o mesmo. É possível que reconfigurações do endereço IP sejam necessárias. De qualquer forma recomendo que seja feito uma analise e entendimento do código antes de executar em ambiente de produção.
- Ações que o script executa
- Seleciona as máquinas virtuais do vCenter Server de 4 formas diferentes
- Datacenter
- Cluster
- Resource Pool
- Folder
- Efetua diversas verificações
- Se as VMs estão ligadas
- Se as VMs possuem interface de rede e1000 / E1000E
- Migração
- Com a VM desligada, ocorre a migração da interface de rede E1000 e/ou E1000E para VMXNET 3
- Seleciona as máquinas virtuais do vCenter Server de 4 formas diferentes
- Compatibilidade
- vSphere (ESXi e vCenter)
- Testado nas versões 5.1, 5.5, 6.0 e 6.5
- PowerCLI
- Recomendo a versão 6 ou superior
- vSphere (ESXi e vCenter)
- Pré-requisitos
- vCenter Server (Windows ou Appliance) versão 5 ou superior
- Garantir que o vCenter esteja acessível pela rede
- VMware vSphere PowerCLI versão 6 ou superior
- vCenter Server (Windows ou Appliance) versão 5 ou superior
- Download
- Github (última atualização: 16/01/2018 | Versão 2.0)
- Dica
4 thoughts on “Script Migrate Virtual Machine Network Adapter”
Boa tarde!
Tentei executar o seu script porém esta dando erro no final dele. Quando aperto “Y” para efetuaras mudanças.
Do you want to continue? (Y or N): Y
Get-NetworkAdapter : 02/01/2018 14:46:07 Get-NetworkAdapter Could not find VirtualMachine with name ‘M’.
No C:\Users\antonio.melo\Documents\migrar_2.ps1:175 caractere:15
+ … $VMe1000 = Get-NetworkAdapter -VM $MyVM.Name[$VMNumTotal] | Where …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (M:String) [Get-NetworkAdapter], VimException
+ FullyQualifiedErrorId : Core_ObnSelector_SelectObjectByNameCore_ObjectNotFound,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.GetNetworkAdapter
Get-NetworkAdapter : 02/01/2018 14:46:07 Get-NetworkAdapter Please specify at least one of the following: VirtualMachine, Template or Snapshot.
No C:\Users\antonio.melo\Documents\migrar_2.ps1:175 caractere:15
+ … $VMe1000 = Get-NetworkAdapter -VM $MyVM.Name[$VMNumTotal] | Where …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-NetworkAdapter], ViError
+ FullyQualifiedErrorId : Core_VirtualDeviceGetter_GetMoListFromCmdletParameter_InsufficientParameters,VMware.VimAutomation.ViCore.Cmdlets.Commands.VirtualDevice.
GetNetworkAdapter
Get-VM : 02/01/2018 14:46:07 Get-VM VM with name ‘M’ was not found using the specified filter(s).
No C:\Users\antonio.melo\Documents\migrar_2.ps1:177 caractere:5
+ … Get-VM $MyVM.Name[$VMNumTotal] -Location $VMLocation | Ge …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:) [Get-VM], VimException
+ FullyQualifiedErrorId : Core_OutputHelper_WriteNotFoundError,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVM
M changed to VMXNET 3
Migration OK!
Ele esta dando o nome da VM como “M” e acaba não achando, a minha VM o nome é “Mirage”
Olá Alencar, validei aqui e isso é um “bug”. Aparentemente o script só funciona se você migrar mais de uma VM, apenas com uma causa esse problema que você relatou. Valeu!
Funcionou!
Eu tive que modificar o script e alterar o valor:
$VME1000E – Para vm’s que possuem E1000E
$VME1000 – Para vm’s que possuem E1000 apenas.
O script estava dando erro e não listava as vm’s com ambos os adaptadores. Então quando tenho vm’s com E1000 eu executo o script que contém a string $VME1000. O legal que se eu tenho duas ou mais vm’s que contém NICS diferentes, ou até mesmo na mesma VM adaptadores com E1000 ou E1000E o script reconhece e altera somente a E1000 e depois executo o outro script para alterar a E1000E.
Valeu Abraços!
Esse “bug” foi corrigido na versão 2.0, mas me faltou tempo para finalizar e publicar haha
De qualquer forma, fico feliz que o script está lhe ajudando. Abraço!