[Troubleshooting] Como Remover Placas de Redes Ocultas em Máquinas Virtuais no Hyper-V

Se você trabalha com Hyper-V provavelmente se depará algum dia com o seguinte cenário : Você cria uma máquina virtual, configura as placas de redes virtuais (nomes e ip), em seguida exporta. Ao importá-la em um outro servidor ou até no mesmo servidor você não consegue, algum erro ocorre que impede a importação (vou falar melhor sobre estes problemas de importação em outro artigo). Você não vai pensar duas vezes em criar uma nova máquina virtual, atribuir uma nova placa de rede e vincular o VHD existente certo ? Sim, mas considere que se a máquina virtual tinha snapshots elas serão perdidas, adote este modelo somente quando a VM não tiver nenhum snapshot, essa opção é válida mas saiba você vai se deparar com um problema esperado quando for tentar renomear ou informar o mesmo endereço IP nessa nova máquina.

Quando você ligar a VM, efetuar o logon, e tentar renomear a placa de rede em Network Connections com o nome que estava quando a máquina foi exportada, ou até mesmo informar o mesmo IP, você será notificado que não é possível pois já existe uma placa de rede com o mesmo nome e IP e pede para especificar um nome diferente.

Erro01

Na figura acima, tentei renomear a placa Local Area Connection para Public e recebo a mensagem “Cannot rename this connection. A connection with the name you specified already exists. Specify a different name.”

Isso ocorre porque, quando você não Importa uma VM que foi exportada, você descarta o uso do arquivo GUID.XML original, neste arquivo contém o Hardware ID da placa de rede virtual que é comparada ao valor que fica armazenada no registro da VM, quando você cria uma nova VM e anexa o VHD um novo GUID é criado e ele não contém o mesmo valor anterior. Para a máquina virtual a placa de rede anterior ainda existe e mantém as informações originais, por isso que ocorre a mensagem de erro, ao tentar alterar ele lê o registro e não permite usar o mesmo nome. Essa informação fica perdida no registro da VM e precisa ser eliminada. Você pode ver este Hardware ID indo na placa de rede em Advanced ou Details e no campo Properties selecione Hardware Ids, o exemplo abaixo é de uma máquina física, para uma máquina virtutal o valor se inicia com VMBUS\.

Capture

Cuidado, se você pensou em alterar o arquivo .XML para alterar o Hardware ID da placa antiga, descarte esta opção, alterações neste arquivo não são suportadas pela Microsoft, a solução vai ser remover as placas de redes antigas, porém ao abrir o Device Manager elas não aparecem.

Erro02

Repare que as placas de rede Microsoft Virtual Machine Bus Network Adapter #4, #5 e #6, são as três novas, e as antigas Microsoft Virtual Machine Bus Adapter, #2 e #3 ?.

Por padrão as placas antigas/legadas ficam ocultas no Device Manager, porém mesmo se você ir no menu View e clicar em Show Hidden Devices, elas ainda insistem em não aparecer. Você precisará executar um comando na VM para habilitá-lo.

Abra um prompt de comando com direitos elevados ( Run as Administrator ) e execute o comando C:\set devmgr_show_nonpresent_devices=1

Erro03

Aqui ainda tem uma “pegadinha”, se você abrir o Device Manager pelo Server Manager, repare que as placas ainda insistem em não aparecer (talvez seja um bug), na imagem abaixo a imagem a esquerda que é o Server Manager ao cliar em Device Manager e expandir Network adapters, não lista as placas Virtual Machine Bus Network Adapter, #2 e #3 e se compararmos ao com o MMC do Device Manager ( lado direito) observe que as placas aparecem.

Erro05

Abra diretamente o Device Manager (start devmgmt.msc) e finalmente exclua as placas que aparecem em cinza, depois disso poderá renomear a placa de rede e informar o mesmo IP.

Erro04

Este comportamento também pode ocorrer com Hypervisors não Microsoft, como VMWare e Xen Server entre outros. Siga o mesmo procedimento e pronto !