You sometimes need to list and get all MAC addresses of all Hyper-V virtual machines in your network. Either for your Hyper-V administration or provisioning if you don’t set an unique MAC address automatically. Here is how to get all those MAC addresses easily with PowerShell.

How to list all MAC address of all VM’s on Hyper-V

This tip shows you how to list MAC addresses on local or remote Hyper-V servers.

A media access control address (MAC address) of a computer is a unique identifier assigned to network interfaces for communications at the data link layer of a network segment. MAC addresses are used as a network address for most IEEE 802 network technologies, including Ethernet and WiFi. Logically, MAC addresses are used in the media access control protocol sublayer of the OSI reference model.


A MAC address can be assigned manually by you, or automatically by Hyper-V. If you ever need to list all MAC addresses, use the Get-VM and Get-VMNetworkAdapter PowerShell cmdlets as shown in the following example:

On your local Hyper-V host, list the MAC addresses of all virtual machines (VM’s):

Get-VM | Get-VMNetworkAdapter | ft VMName, MacAddress

To list MAC addresses of all virtual machines on all Hyper-V servers, run the following code in your PowerShell console:

$HypervServers = @("HyperV-01", "HyperV-02", "HyperV-03")
foreach ( $HypervServer in $HypervServers ) {
	Get-VM -Computername $HyperVServer | Get-VMNetworkAdapter | ft VMName, MacAddress

Or on a per remote Hyper-V server basis, run:

Get-VM -Computername hyper-v_server | Get-VMNetworkAdapter | ft VMName, MacAddress

More neat PowerShell Hyper-V tricks:

This may interest you:   PowerShell return value, exit code, or ErrorLevel equivalent

Did this post help you solve a problem? Want to say thanks?

Then why not buy me a coffee? A small donation of just $5 (or more 😉 ) helps out a lot in the development, research and hosting of this blog.

If I’ve helped you out and you want to thank me, why not buy me a coffee?

Thank you for your support.