All scripts
Governance 807
Get-EntraMfaRegistrationGapReport
Reports every user who has not registered any multi factor authentication method, so the gap in MFA coverage is a concrete list rather than an assumption.
Get-EntraMfaRegistrationGapReport.ps1
<#
.SYNOPSIS
Finds users with no MFA method registered.
.DESCRIPTION
Pulls the authentication method registration report and lists every
enabled user with zero registered MFA methods, turning the gap in
MFA coverage into a concrete, actionable list.
.EXAMPLE
.\Get-EntraMfaRegistrationGapReport.ps1
.NOTES
Requires Microsoft.Graph.Reports with an active Connect-MgGraph
session and Reports.Read.All scope.
.AUTHOR
Shehryar Hassan
#>
$details = Get-MgReportAuthenticationMethodUserRegistrationDetail -All
$noMfa = $details | Where-Object { -not $_.IsMfaRegistered -and $_.UserType -eq "Member" } |
Select-Object UserPrincipalName, IsMfaRegistered, IsAdmin
$noMfa | Sort-Object IsAdmin -Descending | Format-Table -AutoSize
Write-Warning "$($noMfa.Count) user(s) with no MFA method registered, including $((($noMfa | Where-Object IsAdmin).Count)) admin account(s)."
Read it before you run it, and test in a safe tenant first.