AzureAD – Schnittmenge von Zwei Gruppen per PowerShell erstellen

Es gibt verschiedene Gründe um eine Schnittmenge zweier Gruppen zu machen. Eine Schnittmenge ist die Menge C, welche in einer Menge A und einer Menge B vorkommen.

Folgend wird PowerShell mit AAD verbunden, um diese Schnittmenge zu erstellen.

import-module AzureAD
Connect-AzureAD 

Die drei Gruppen A,B,C sollten bereits erstellt sein und deren Object ID ausgelesen. Diese Object ID muss anschliessend angepasst werden.

#Get Users of Group "A"
$group_a = Get-AzureADGroupMember -ObjectId <OBJECT ID Group A>

#Get Users of Group "B" 
$group_b = Get-AzureADGroupMember -ObjectId <OBJECT ID Group B>

Jetzt werden für alle Elemente in A geprüft, ob diese auch in B sind und falls ja, werden Sie der Menge C hinzugefügt. Hier muss auch die Object ID von der Gruppe C angepasst werden.

foreach ($user in $group_a){

	if($group_b.Contains($user)){
	Add-AzureADGroupMember -ObjectID <OBJECT ID Group C> -RefObjectID $user.ObjectID
	echo "Added " $user.DisplayName "to Group"
		}

}

Schliesslich kann man überprüfen, wie viele Elemente von A und B in C zu finden sind. Dies dient ausschliesslich des Reportings.

$totaladded = Get-AzureADGroupMember -ObjectId <ObjectID Group C>
echo "added" $totaladded.count "users from possible" 

if($group_a.Count -ge $group_b.Count){
echo $group_b.count
}
elseif($group_a.Count -le $group_b.Count){
echo $group_a.count
} 

Hier ist das Skript nochmals in voller länge.

#Schnittmenge zweier Gruppen in neue Gruppe einfügen#
import-module AzureAD
Connect-AzureAD 

#Get Users of Group "A"
$group_a = Get-AzureADGroupMember -ObjectId <OBJECT ID Group A>

#Get Users of Group "B" 
$group_b = Get-AzureADGroupMember -ObjectId <OBJECT ID Group B>


	foreach ($user in $group_a){

		if($group_b.Contains($user)){
		Add-AzureADGroupMember -ObjectID <OBJECT ID Group C> -RefObjectID $user.ObjectID
		echo "Added " $user.DisplayName "to Group"
		}

	}

#Reporting
$totaladded = Get-AzureADGroupMember -ObjectId "6c8496bd-ffa2-474c-b822-e8ac33e7a273"
echo "added" $totaladded.count "users from possible" 

if($group_a.Count -ge $group_b.Count){
echo $group_b.count
}
elseif($group_a.Count -le $group_b.Count){
echo $group_a.count
} 

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.