Replace existing NIC of Azure Virtual Machine (ARM) with PowerShell

Sometimes we just need to do something dumb. For instance, recently I have changed default DNS settings of network adapter on client OS (Windows Server 2016) side of my Azure VM. Next moment, the RDP connection has failed and I couldn’t reconnect again.

The first idea was to replace NIC to another one, which should be recognized by client OS as a new one with default “auto” DNS settings. Well, actually the first idea was to reboot the VM, but it didn’t help.

So let’s see how to replace an existing NIC on Azure VM.

First of all we need to create a new NIC to replace the old one. It can be done with PowerShell, but I used web interface, so let’s assume we already have the replacement NIC.

For some reason I couldn’t replace NIC on existing VM from the Azure Portal. Maybe it’s just as it is, maybe it’s because the VM was not created with multiple NICs in the first place, I’m not sure. I needed a quick fix so I it’s a PowerShell time!

Here is a PowerShell snippet that I used to add a new NIC to VM and remove old one.The script is using Azure RM cmdlets because all my resources was deployed with Resource Manager.

After you replaced NIC you’d want to check if VM can boot normally, than the old interface can be removed or reassigned to another resource. Also you may need to add public IP to the new interface.

2 thoughts on “Replace existing NIC of Azure Virtual Machine (ARM) with PowerShell

  1. Thanks a lot for this! Had 2 VMs that were working, but their NICs were in a “failed” state. Nothing worked, but this finally helped me to replace the NICs with new ones, and then reconfigure the new NICs with the old settings

Leave a Reply to Rene Modery (@modery) Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.