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
}