The estimated reading time 1 minutes
Auch im Cloudumfeld, speziell in größeren Umgebungen kann es sinnvoll sein, immer mal wieder Azure AD Gruppen zu betrachten und diese auch auf deaktivierte Benutzer zu prüfen. Natürlich kann hier auch einiges an Lizenzkosten gespart werden, wenn deaktivierten Benutzern auch die Lizenz tatsächlich entzogen wird.
Für diesen Anwendungsfall habe ich ein kleines PowerShell Script geschrieben, welches eine Azure AD Gruppe analysiert und die deaktivierten Benutzer ausgibt, oder nach Wunsch auch gleich aus der Gruppe entfernt.
Connect-AzureAD $grouptoclean = "XXXXX" $groupid = (Get-AzureADGroup -SearchString "$grouptoclean").ObjectId $groupmembers = (Get-AzureADGroupMember -ObjectId "$groupid" -All $true) | Sort-Object UserPrincipalname $inactiveusers = @() foreach($user in $groupmembers){ $upn = ($user).UserPrincipalname $enabled = Get-AzureADUser -SearchString $upn | Where-Object{$_.AccountEnabled -eq $false} $active = ($enabled).AccountEnabled $userid = ($enabled).ObjectId if($enabled){ Write-Host "UPN: $upn is disabeld, Status: $active" -ForegroundColor Yellow $inactiveusers += $upn #Remove-AzureADGroupMember -ObjectId $groupid -MemberId $userid } else{ $member = Get-AzureADUser -SearchString $upn $upnmember = ($member).UserPrincipalName $activemember = ($member).AccountEnabled Write-Host "UPN: $upnmember Status: $activemember" } } $inactiveusers | sort ($inactiveusers).count #$inactiveusers = $null
Die gelbe Ausgabe zeigt dann alle deaktivierten Benutzer innerhalb der Gruppe an, welche bei Scharfschaltung auch entfernt werden würden.
Um die Entfernung ebenfalls durchzuführen muss nur ein # entfernt werden (Zeile 19).
Remove-AzureADGroupMember -ObjectId $groupid -MemberId $userid
Viel Erfolg beim Aufräumen der Gruppen.
HINWEIS: wer Verteilergruppen bearbeitet, könnte natürlich auch Shared Mailboxes erwischen, da diese Benutzer ebenfalls deaktiviert sind.