Monday, July 15, 2024
HomePowershellAzure AD PowerShell Prüfen ob ein Benutzer Mitglied einer Gruppe ist

Azure AD PowerShell Prüfen ob ein Benutzer Mitglied einer Gruppe ist


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

Print Friendly, PDF & Email
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments