Exportieren Sie den MFA-Status aller Microsoft 365-Benutzer mit PowerShell
In diesem Beitrag zeige ich Ihnen, wie Sie mit PowerShell einen Bericht über den MFA-Status aller Benutzer in Microsoft 365 exportieren können. So erhalten Sie einen klaren Überblick des aktuellen Status der MFA-Einstellungen Ihrer Benutzer.
Es ist auch besonders hilfreich, den MFA-Status Ihrer Benutzer klar und präzise anzuzeigen, wenn Sie planen, bedingten Zugriff in Ihrer Umgebung bereitzustellen, um MFA durchzusetzen, aber kein Azure-Abonnement haben, um Protokollanalysen zu ermöglichen.
Die einzige andere Möglichkeit, den MFA-Status Ihrer Benutzer anzuzeigen, besteht darin, die Benutzerwebseite für die Multi-Faktor-Authentifizierung im Microsoft 365 Admin Center zu verwenden. Hier fehlen jedoch wirklich nützliche Funktionen wie Exportieren, Filtern oder Identifizieren, welche Authentifizierungsmethode verwendet wird.
Wenn Sie außerdem erfahren möchten, wie Sie die Verwendung sichererer Authentifizierungsmethoden erzwingen können, z. B. das Verhindern der Verwendung der SMS-Authentifizierung, lesen Sie mein Tutorial zum Aktivieren der Anforderung Einstellung der Authentifizierungsstärke im bedingten Zugriff.
Voraussetzungen
Damit dieses Skript ausgeführt werden kann, müssen Sie über globalen Administratorzugriff auf Ihren Microsoft 365-Mandanten verfügen. Dadurch soll sichergestellt werden, dass Sie alle relevanten Informationen lesen können, die exportiert werden. Wenn Sie sich nicht sicher sind, ob Sie über diese Zugriffsebene verfügen, wenden Sie sich an Ihr IT-Team oder bitten Sie es, dieses Skript in Ihrem Namen auszuführen.
Sie sollten auch das MSOnline PowerShell-Modul installiert haben. Wenn Sie sich nicht sicher sind, wie das geht, lesen Sie meinen Beitrag: So beheben Sie, dass der Begriff „Connect-MsolService“ nicht erkannt wird
Exportieren Sie den MFA-Status des Benutzers mit PowerShell
Das Skript zum Exportieren der MFA-Informationen jedes Benutzers ist ziemlich einfach. Zunächst wird eine Verbindung zum MSOnline-Dienst hergestellt, wo sofort eine interaktive Eingabeaufforderung angezeigt wird, bei der Sie sich anmelden können. Sobald Sie angemeldet sind, wird eine Liste aller Benutzerkonten in Ihrem Mandanten erstellt und dann jeder Benutzer durchlaufen, um die MFA-Informationen zu speichern. Sobald dies erledigt ist, werden die Informationen in eine CSV-Datei auf Ihrem System unter C:\temp exportiert
Sie können das folgende Skript entweder kopieren und in PowerShell einfügen oder es als .ps1-Datei speichern und auf diese Weise ausführen.
#Connect to Microsoft Online
Connect-MsolService
#Get all user accounts
Write-Host "Finding accounts..." -ForegroundColor white -BackgroundColor Black
$Users = Get-MsolUser -All | Where-Object { $_.UserType -ne "Guest" }
#create a new object
$Report = [System.Collections.Generic.List[Object]]::new()
#pause and display information
Start-Sleep 1.5
Write-Host $users.count "Accounts found" -ForegroundColor white -BackgroundColor Black
#Loop through each user, gather information on mfa status and methods and add to report
ForEach ($user in $users) {
$mfadefaultmethod = ($User.StrongAuthenticationMethods | Where-Object { $_.IsDefault -eq "True"}).methodtype
$userupn = $user.UserPrincipalName
$displayname = $user.displayname
If (($user.StrongAuthenticationRequirements.state) -eq "Enforced") {
$state = $User.StrongAuthenticationRequirements.State
}
Else {
$state = 'Disabled'
}
If ($mfadefaultmethod) {
Switch ($mfadefaultmethod) {
"OneWaySMS" { $Method = "SMS" }
"TwoWayVoiceMobile" { $Method = "Phone call" }
"PhoneAppOTP" { $Method = "Hardware token or authenticator app" }
"PhoneAppNotification" { $Method = "Authenticator app" }
}
}
Else {
$mfadefaultmethod = "Not set"
}
$ReportLine = [PSCustomObject] @{
UserPrincipalName = $User.UserPrincipalName
DisplayName = $User.DisplayName
MFAState = $State
MFADefaultMethod = $MFADefaultMethod
}
$Report.Add($ReportLine)
}
#Export report to CSV file
$Report | Export-CSV -Encoding UTF8 -NoTypeInformation "c:\temp\m365mfareport.csv"
Write-Host "Data exported to C:\temp folder" -ForegroundColor white -BackgroundColor Black