Powershell script to pull MAC addresses from Intune

Copper Contributor

I am after the Powershell Commands to retrieve the ethernet MACs of enrolled devices in Intune.


The aim is to create a script that pulls the MAC addresses for all enrolled devices at once.


Any help would be appreciated.

2 Replies
I am now using the following:

$devices = Get-MgDeviceManagementManagedDevice
if ($devices) {
foreach ($device in $devices) {
$output = "Device: $($device.DeviceName)
Operating System: $($device.OperatingSystem)
Ethernet MAC: $($device.EthernetMacAddress)"
Write-Output $output
$output | Out-File -FilePath $outputFilePath -Append

This successfully populates the Device name and Operating system for all enrolled devices, but the MAC remains blank. However, if I define $devices as a single device using the device ID, the MAC address populates.



unfortunately the standard output of Get-MgDeviceManagementManagedDevice does not contain the EthernetMacAddress, only the WiFiMacAddress. so you have to call the device again separately here is a script



$allIntuneDevices = Get-MgDeviceManagementManagedDevice -All
$outputFilePath = "C:\temp\IntuneDevices.txt"
foreach ($intuneDevice in $allIntuneDevices) {
  $singelDevice = Get-MgDeviceManagementManagedDevice -ManagedDeviceId $intuneDevice.ID | Select DeviceName, EthernetMacAddress, OperatingSystem
  $singelDevice | Export-Csv -Path IntuneDevices.csv -Delimiter ";" -Encoding utf8 -IncludeTypeInformation -Append

  #or in your format
  $output = "Device: $($singelDevice.DeviceName)
  Operating System: $($singelDevice.OperatingSystem)
  Ethernet MAC: $($singelDevice.WiFiMacAddress)"
  Write-Output $output
  $output | Out-File -FilePath $outputFilePath -Append