AzureAD / M365 – Alle aktive Rollenzuweisungen auslesen

Da ich div. Conditional Access Policies implementiere und diese auf bestimmte Rollen beschränke, möchte ich vorher wissen, welche Admins davon betroffen sein werden. Ich bin aber zu faul durch alle Rollen durchzuklicken. Darum habe ich folgendes Skript geschrieben:

#Mit M365 verbinden
Connect-MsolService

#Leeres Array für die Tabelle erstellen
$RoleAssignments = @()

#Alle AzureAD Rollen einlesen
$Roles = Get-MsolRole

#Für jede dieser Rollen...
Foreach ($Role in $Roles){
	
	#...die Mitglieder einlesen
	$RoleMembers = Get-MsolRoleMember -RoleObjectID $Role.ObjectId
	
	#Sollte es Mitglieder in dieser Rolle geben...
	if ($RoleMembers) {
		
		#...für jeden dieser Mitglieder...
		Foreach ($RoleMember in $RoleMembers) {
			
			#...eine leere Variable erstellen
			$RoleAssignment = "" | Select RoleName,RoleObjectID,MemberDisplayName,MemberObjectID
			
			#DisplayName der Rolle eintragen
			$RoleAssignment.RoleName = $Role.Name
			
			#ObjectId der Rolle eintragen
			$RoleAssignment.RoleObjectID = $Role.ObjectId
			
			#DisplayName des Users eintragen
			$RoleAssignment.MemberDisplayName = $RoleMember.DisplayName
			
			#ObjectId des Users eintragen
			$RoleAssignment.MemberObjectID = $RoleMember.ObjectId
			
			#Den Datensatz der Tabelle hinzufügen
			$RoleAssignments += $RoleAssignment
		}
	}
}

#Sich das Ergebnis als extra Fenster ausgeben lassen
$RoleAssignments | Out-GridView

Nichts wildes, aber wieder verwendbar. Aber Achtung: Die Rollen die mittels PIM „eligable“ sind, werden hier nicht mit aufgelistet.