Exportieren Sie den Bericht „Microsoft 365-Administratorrollen-Mitglieder“.

In vielen Organisationen werden Administratoren verschiedenen Administratorrollengruppen hinzugefügt. Meistens handelt es sich dabei um hochprivilegierte Rollen. Allerdings benötigen sie nicht so viele Zugriffsrechte. Erstellen Sie am besten einen Administratorrollenbericht und sehen Sie, welches Mitglied zu welcher Administratorrolle hinzugefügt wird. In diesem Artikel erfahren Sie, wie Sie Microsoft 365-Administratorrollen-Mitgliederberichte mit PowerShell und Microsoft 365 Admin Center exportieren.

Exportieren Sie Administratorrollenmitglieder im Microsoft 365 Admin Center

Um die Administratorrollenmitglieder in Microsoft 365 zu exportieren, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich anMicrosoft 365 Admin Center
  2. Klicken Sie aufRollen > Rollenzuweisungen
  3. WählenMicrosoft-Anmelde-ID
  4. Klicken Sie aufAdmin-Liste exportieren
  1. Öffnen Sie die CSV-Datei mit dem Microsoft Entra ID/Microsoft 365-Administratorrollenbericht

Der Nachteil dieses Berichts besteht darin, dass er die Benutzer in den Gruppen nicht anzeigt. Dann kommt PowerShell zur Rettung. Schauen wir uns das an.

Exportieren Sie Administratorrollenmitglieder mit einem PowerShell-Skript

Das PowerShell-Skript „Export-M365AdminRoles.ps1“ ruft alle Benutzer mit Administratorrollen im Microsoft 365/Entra-Mandanten ab. Anschließend wird der Bericht in eine CSV-Datei exportiert. Sie können die CSV-Datei mit Microsoft Excel oder jeder anderen Anwendung öffnen, die die CSV-Dateierweiterung unterstützt.

Das Skript sammelt die folgenden Informationen:

  1. Rolle
  2. Anzeigename
  3. Benutzerprinzipalname
  4. Mitgliedstyp
  5. LastSuccessfulSignInDateTime (erfordert eine Microsoft Entra ID P1/P2-Lizenz)
  6. Kontostatus
  7. Lizenzstatus

Um alle Administratorrollenmitglieder mit PowerShell zu exportieren, führen Sie die folgenden Schritte aus:

Schritt 1. Installieren Sie Microsoft Graph PowerShell

Führen Sie Windows PowerShell als Administrator aus und installieren Sie das Microsoft Graph PowerShell-Modul.

Install-Module Microsoft.Graph -Force

Wichtig:Aktualisieren Sie immer auf die neueste Version des Microsoft Graph PowerShell-Moduls, bevor Sie ein Cmdlet oder Skript ausführen, um Fehler und falsche Ergebnisse zu vermeiden.

Schritt 2: Laden Sie das PowerShell-Skript „Export-M365AdminRoles“ herunter

Erstellen Sie zwei Ordner auf dem(C:)fahren:

  • Skripte
  • Temp

Laden Sie das PowerShell-Skript Export-M365AdminRoles.ps1 herunter und platzieren Sie es imC:SkripteOrdner. Das Skript exportiert alle Benutzer mit Administratorrollen in einen Bericht imC:TempOrdner.

Stellen Sie sicher, dass die Datei entsperrt ist, um Fehler beim Ausführen des Skripts zu vermeiden. Lesen Sie mehr im Artikel Fehler „Nicht digital signiert“ beim Ausführen des PowerShell-Skripts.

Eine andere Möglichkeit besteht darin, den folgenden Code zu kopieren und in Notepad einzufügen. Geben Sie ihm den Namen Export-M365AdminRoles.ps1 und platzieren Sie es imC:SkripteOrdner.

<#
    .SYNOPSIS
    Export-M365AdminRoles.ps1

    .DESCRIPTION
    Export all Microsoft 365/Microsoft Entra ID admin roles members to CSV file.

    .LINK
    www.alitajran.com/export-microsoft-365-admin-roles-members/

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran
    X:          x.com/alitajran

    .CHANGELOG
    V2.00, 02/10/2025 - Refactored the script for faster performance.
#>

param (
    [Parameter(Mandatory = $true)]
    [string]$ExportPath
)

# Connect to Microsoft Graph with necessary scopes
Connect-MgGraph -Scopes "RoleManagement.Read.Directory", "User.Read.All", "Group.Read.All", "AuditLog.Read.All", "Organization.Read.All" -NoWelcome

# Define CSV file export location variable using the parameter provided
$Csvfile = "$ExportPath"

# Retrieve all subscribed SKUs and check for Entra ID Premium
$hasPremium = $false
$hasPremium = (Get-MgSubscribedSku).ServicePlans.ServicePlanName -contains "AAD_PREMIUM"

# Display status of Premium subscription
if ($hasPremium) {
    Write-Host "Microsoft Entra ID Premium subscription available." -ForegroundColor Cyan
}
else {
    Write-Host "Microsoft Entra ID Premium subscription unavailable." -ForegroundColor Cyan
}

# If Premium is available, include the sign-in activity for the user
$propertyParams = if ($hasPremium) {
    @('AccountEnabled', 'AssignedLicenses', 'SignInActivity')
}
else {
    @('AccountEnabled', 'AssignedLicenses')
}

# Initialize a List to store the data
$Report = [System.Collections.Generic.List[Object]]::new()

# Get all directory roles
$allroles = Get-MgDirectoryRole | Select-Object Id, DisplayName

# Initialize a counter for progress bar
$totalRoles = $allroles.Count
$counter = 0

# Loop through each user to check for role memberships with progress bar
foreach ($role in $allroles) {
    $counter++
    $percentComplete = [math]::Round(($counter / $totalRoles) * 100, 2)
    Write-Progress -Activity "Processing Roles - $percentComplete%" -Status "Role: $($role.DisplayName)" -PercentComplete $percentComplete

    # Get members of each role
    $Rolemembers = Get-MgDirectoryRoleMember -DirectoryRoleId $role.id
    if ($null -ne $Rolemembers) {
        foreach ($Member in $rolemembers) {
            $odataType = $member.AdditionalProperties.'@odata.type'
            switch -regex ($odataType) {
                'user$' {
                    # Get user information including potential sign-in activity
                    $userInfo = Get-MgUser -UserId $member.id -Property $propertyParams | Select-Object $propertyParams
                    $lastSignIn = if ($hasPremium) {
                        if ($userInfo.SignInActivity -and $userInfo.SignInActivity.LastSuccessfulSignInDateTime) {
                            $userInfo.SignInActivity.LastSuccessfulSignInDateTime
                        }
                        else {
                            "Never Signed In"
                        }
                    }
                    else {
                        "Microsoft Entra ID Premium license unavailable"
                    }
                    $memberType = "User"
                    $username = $member.AdditionalProperties.userPrincipalName
                    $accountStatus = if ($userInfo.AccountEnabled) { "Enabled" } else { "Disabled" }
                    $licenseStatus = if ($userInfo.AssignedLicenses) { "Licensed" } else { "Unlicensed" }
                }
                'group$' {
                    $lastSignIn = "N/A"
                    $memberType = "Group"
                    $username = "N/A"
                    $accountStatus = "N/A"
                    $licenseStatus = "N/A"
                }
                default {
                    $lastSignIn = "N/A"
                    $memberType = $odataType.Split('#')[1]
                    $username = "N/A"
                    $accountStatus = "N/A"
                    $licenseStatus = "N/A"
                }
            }

            # Create custom object for report
            $ReportLine = [PSCustomObject][Ordered]@{
                Role                         = $role.DisplayName
                DisplayName                  = $member.AdditionalProperties.displayName
                UserPrincipalName            = $username
                MemberType                   = $memberType
                LastSuccessfulSignInDateTime = $lastSignIn
                AccountStatus                = $accountStatus
                LicenseStatus                = $licenseStatus
            }
            $Report.Add($ReportLine)
        }
    }
}

# Finish the progress bar
Write-Progress -Activity "Processing Roles" -Status "Completed" -PercentComplete 100 -Completed

# Show report in Out-GridView and export report to CSV file
if ($Report.Count -gt 0) {
    $Report | Out-GridView -Title "Microsoft 365 Role Membership Report"
    $Report | Export-Csv -Path $Csvfile -NoTypeInformation -Encoding Utf8
    Write-Host "Report saved at $Csvfile" -ForegroundColor Cyan
}
else {
    Write-Host "No roles were found for any users." -ForegroundColor Yellow
}

Schritt 3: Führen Sie das PowerShell-Skript Export-M365AdminRoles aus

Führen Sie den folgenden Befehl aus, um das auszuführenExport-M365AdminRoles.ps1PowerShell-Skript und zum Erstellen eines Berichts.

C:scripts.Export-M365AdminRoles.ps1 -ExportPath "C:tempAdminRolesReport.csv"

Die Berichtsausgabe wird in einem separaten Fenster (Out-GridView) an eine interaktive Tabelle gesendet.

Schritt 4: Überprüfen Sie die CSV-Datei des Administratorrollenberichts

Das PowerShell-Skript Export-M365AdminRoles.ps1 exportiert alle Benutzer mit Administratorrollen in eine CSV-Datei.

Finden Sie die DateiAdminRolesReport.csvim WegC:Temp.

Empfohlene Lektüre:Exportieren Sie den OneDrive-Nutzungsbericht in Microsoft 365

Öffnen Sie die CSV-Datei mit Ihrer Lieblingsanwendung. In unserem Beispiel ist es Microsoft Excel.

Das ist es!

Abschluss

Sie haben gelernt, wie Sie den Bericht über Mitglieder von Microsoft 365-Administratorrollen exportieren. Es ist zwar möglich, alle Mitglieder der Administratorrollen aus dem Microsoft 365 Admin Center zu exportieren, es ist jedoch besser, PowerShell für einen Bericht zu verwenden. Das liegt daran, dass Sie alle Benutzer und keine Gruppen als Mitglieder sehen. Außerdem können Sie der exportierten CSV-Datei alle möglichen Eigenschaften hinzufügen, die sich perfekt für einen Bericht eignen.

Hat Ihnen dieser Artikel gefallen? Vielleicht gefällt Ihnen auch „So konfigurieren Sie Microsoft Entra Privileged Identity Management (PIM“). Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.

Related Posts