Library / Identity & Zero Trust

MFA registration report with Microsoft Graph PowerShell

Export every user’s MFA registration status to CSV so you can see who still needs to enrol before you enforce Conditional Access.

Script Intermediate 1 Nov 2026 By Tariq Hanif

What it does

Pulls authentication method registration details for every user and exports a CSV you can filter in Excel.

Requirements

  • Microsoft Graph PowerShell SDK (Install-Module Microsoft.Graph -Scope CurrentUser)
  • An account that can consent to AuditLog.Read.All

Script

Connect-MgGraph -Scopes "AuditLog.Read.All" -NoWelcome

$report = Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Select-Object UserPrincipalName, UserDisplayName, IsAdmin,
    IsMfaRegistered, IsMfaCapable, IsPasswordlessCapable,
    @{n = "Methods"; e = { $_.MethodsRegistered -join ", " }}

$path = Join-Path $env:USERPROFILE "Desktop\MFA-Registration.csv"
$report | Export-Csv $path -NoTypeInformation -Encoding UTF8

Write-Host "Not registered:" ($report | Where-Object { -not $_.IsMfaRegistered }).Count
Write-Host "Saved to $path"

Tip

Sort by IsAdmin first. Every admin without MFA is your highest-priority fix.