Heute möchte ich eine kleine Funktion zeigen, welche die Mitgliedschaft eines Azure AD Benutzers in einer Azure AD Gruppe abprüft. Dies kann hilfreich bei einer Automatisierung im Bereich Azure AD sein.
Bei richtiger Benutzung gibt das Script immer TRUE bzw. FALSE zurück.
Was kann das Teil:
1. Gib bei Mitgliedschaft TRUE bzw. FALSE zurück wenn der Benutzer nicht Mitglied ist
2. Prüft ob es angegebenen Benutzer in Azure AD gibt
3. Prüft ob es die angegebenen Gruppe in Azure AD gibt(wird mit Searchstring identifiziert, falls nicht wird ein Fehler ausgegeben)
Bevor die Funktion überhaupt verwendet werden kann, muss eine Verbindung zur PowerShell von Azure AD hergestellt werden. Siehe hierzu:
https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide
Set up-Module -Identify AzureAD Import-Module AzureAD Join-AzureAD
Nach der erfolgreichen Verbindung kann die Funktion importiert und dann auch genutzt werden:
Wenn die Funktion additionally eine Gruppe und einen Benutzer findet, dann wird TRUE oder FALSE ausgegebenen.
Der Code:
operate Verify-UserInAzureGroup { [CmdletBinding()] param ( [Parameter( Mandatory=$true, Position=0)] [ValidateNotNull()] [string] $upn, [Parameter(Mandatory=$true)] [ValidateNotNull()] [string] $groupname ) $consumer = "$upn" $group = "$groupname" #verify if the consumer exists in azure advert $azureaduser = (Get-AzureADUser -ObjectId "$consumer" -ErrorAction SilentlyContinue).rely #if variable azureaduser is 1 consumer exists if($azureaduser -eq 1){ #creating array $memberof = @() #Verify if groupname is exclusive $uniquegroup = (Get-AzureADGroup -SearchString "$group").rely if(($uniquegroup -eq 0) -or ($uniquegroup -gt 1)){ #there was no group or multiple group return Write-host "Error: please specify an groupname that's distinctive an identical or groupname was not discovered!" -ForegroundColor Crimson } else{ #one distinctive group discovered, get objectid of group [string]$azureadgroupobjid = Get-AzureADGroup -SearchString "$group" | choose ObjectId -ExpandProperty ObjectId #get groupmembership of consumer (objectids) [string]$memberof = Get-AzureADUserMembership -ObjectId "$consumer" | choose ObjectId -ExpandProperty ObjectId #match objectid of group in memberof If ($memberof -match $azureadgroupobjid) { return $true } Else { return $false } } } else{ #upn doesn't exist return Write-Host "Please verify UserPrincipalName, Azure AD Consumer not discovered!" -ForegroundColor Crimson } }
Wie kann die Funktion additionally konkret genutzt werden? Einfach eine PowerShell starten, verbinden und die Funktion hineinkopieren.
Viel Erfolg beim Einsatz der Funktion. Gerne könnt ihr auch Kommentare bzw. Function Requests in die Kommentare schreiben. Sollte euch der Artikel gefallen haben, klickt bitte auf Useful