Getting MAC Addresses

by Oct 1, 2014

All PowerShell Versions

Getting the MAC of a network adapter is rather simple in PowerShell. Here is one of many ways:

PS> getmac /FO CSV | ConvertFrom-Csv 

Physical Address                        Transport Name                         
----------------                        --------------                         
5C-51-4F-62-F2-7D                       \Device\Tcpip_{FF034A81-CBFE-4B11-9D...
5C-51-4F-62-F2-81                       Media disconnected      

The challenge might be that the actual column names are localized and can vary from culture to culture. Since the raw information comes from CSV data emitted by getmac.exe, there is a simple trick though: rename the columns to whatever you like by skipping the first line (containing the CSV headers), and then submitting your own unique header names:

getmac.exe /FO CSV |
  Select-Object -Skip 1 | 
  ConvertFrom-Csv -Header MAC, Transport 

This will always produce columns named “MAC” and “Transport”.

Of course there are object-oriented approaches, too, like asking the WMI or using special cmdlets in Windows 8.1 or Server 2012/2012 R2. However, we believe the illustrated approach is a fun alternative and shows how to turn raw CSV data into really useful culture-invariant information.

Twitter This Tip! ReTweet this Tip!