Benutzer mit den meisten Antworten
Prüfen ob Benutzer einer bestimmten OU einer Benutzergruppe angehören

Frage
-
Hallo!
Ich versuche, mittlerweile schon etwas verzweifelt, ein Powershell Script zu folgender Aufgabe zu erstellen:
Ich habe ein AD welches über ein anderes System mit Benutzern befüllt wird (IDM). Diese Synchronisation legt neue Benutzer in einer OU (Beispiel: "Test") an. (Mehr kann es nicht!)
Die Aufgabe des Scriptes sollte nun sein alle Benutzer mit dem SamAccountName = "b_*", welche sich in der OU "Test" befinden und nicht der Benutzergruppe "Test1" angehörten diese in der Gruppe zu ergänzen.
Ich habe mit folgenden Befehlen getestet aber ich schaffe es einfach nicht diese korrekt zu verschachteln:
'Mit diesem habe ich schon mal die Benutzer auflisten können!
Get-ADUser -Filter { SamAccountName -Like "b_*" } -Properties MemberOf -SearchBase "OU=test,DC=ad,DC=hausnetz,DC=net"
Add-ADGroupMember -Identity "pers" -Members $_.SamAccountName
Danke für Eure Hilfe!
Mfg. Jochen
- Bearbeitet Jochen02 Sonntag, 11. Dezember 2011 15:58
Antworten
-
$users = Get-ADUser -Filter { SamAccountName -Like "b_*" } -Properties MemberOf -SearchBase "OU=test,DC=ad,DC=hausnetz,DC=net" foreach ($user in $users){ $found = $false $members = $user.memberof foreach ($member in $members){ if ($member.contains("pers")){$found = $true} } if ($found -eq $true){Write-host "$($user.SamAccountName) - EXISTING IN GROUP"} else{ Write-host "$($user.SamAccountName) - ADD USER TO GROUP" Add-ADGroupMember -Identity "pers" -Members $_.SamAccountName } }
das hat bei mir funktioniert, musst halt ou etc ersetzen etc
viel spaß gruß patrick- Als Antwort vorgeschlagen KloinerFeigling83 Montag, 12. Dezember 2011 10:38
- Als Antwort markiert Jochen02 Montag, 12. Dezember 2011 11:53
- Tag als Antwort aufgehoben Jochen02 Montag, 12. Dezember 2011 13:49
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 23. Dezember 2011 16:39
-
Hallo!
Ich muss mich Bedanken! Das hat wunderbar funktioniert!
Ergänzend dazu bin ich auch noch auf eine Filtervariante gestoßen die mir ebenfalls das gewünschte Ergebnis liefert!
Vielleicht könnt ihr es auch gebrauchen!
Get-ADUser -Filter { SamAccountName -Like "b_*" } -Properties MemberOf -SearchBase "OU=pers,DC=mugad,DC=medunigraz,DC=at" | Where-Object {$_.MemberOf -notcontains "CN=Pers,OU=Gruppen,DC=mugad,DC=medunigraz,DC=at"} | %{Add-ADGroupMember -Identity "Pers" -Members $_.SamAccountName}
Danke nochmals!Lg Jochen
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 23. Dezember 2011 16:39
Alle Antworten
-
$users = Get-ADUser -Filter { SamAccountName -Like "b_*" } -Properties MemberOf -SearchBase "OU=test,DC=ad,DC=hausnetz,DC=net" foreach ($user in $users){ $found = $false $members = $user.memberof foreach ($member in $members){ if ($member.contains("pers")){$found = $true} } if ($found -eq $true){Write-host "$($user.SamAccountName) - EXISTING IN GROUP"} else{ Write-host "$($user.SamAccountName) - ADD USER TO GROUP" Add-ADGroupMember -Identity "pers" -Members $_.SamAccountName } }
das hat bei mir funktioniert, musst halt ou etc ersetzen etc
viel spaß gruß patrick- Als Antwort vorgeschlagen KloinerFeigling83 Montag, 12. Dezember 2011 10:38
- Als Antwort markiert Jochen02 Montag, 12. Dezember 2011 11:53
- Tag als Antwort aufgehoben Jochen02 Montag, 12. Dezember 2011 13:49
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 23. Dezember 2011 16:39
-
Hallo Patrick,
vielleicht könnte man da noch etwas tunen. Es kann ja sein, dass der jeweilige Benutzer in sehr vielen Gruppen Mitglied ist. Wenn jetzt die Gruppe sehr früh in der Schleife gefunden wird, dann läuft trotzdem die Schleife weiter. Ich würde eventuell mit "break" die Foreach Schleife beenden, wenn die Gruppenmitgliedschaft gefunden wurde.
if ($member.contains("pers")){$found = $true;break}
Viele GrüßeFrank
-- Frank Röder blog.iteach-online.de --- Als Antwort vorgeschlagen KloinerFeigling83 Montag, 12. Dezember 2011 10:38
- Als Antwort markiert Jochen02 Montag, 12. Dezember 2011 13:49
- Tag als Antwort aufgehoben Jochen02 Montag, 12. Dezember 2011 13:49
-
Hallo!
Ich muss mich Bedanken! Das hat wunderbar funktioniert!
Ergänzend dazu bin ich auch noch auf eine Filtervariante gestoßen die mir ebenfalls das gewünschte Ergebnis liefert!
Vielleicht könnt ihr es auch gebrauchen!
Get-ADUser -Filter { SamAccountName -Like "b_*" } -Properties MemberOf -SearchBase "OU=pers,DC=mugad,DC=medunigraz,DC=at" | Where-Object {$_.MemberOf -notcontains "CN=Pers,OU=Gruppen,DC=mugad,DC=medunigraz,DC=at"} | %{Add-ADGroupMember -Identity "Pers" -Members $_.SamAccountName}
Danke nochmals!Lg Jochen
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 23. Dezember 2011 16:39