makaroni
Goto Top

Mit Get-ADGroupmember Befehl mehrere AD-Gruppen ausgeben

Hallo zusammen,

ich habe ein kleines Problem beim Auslesen via Powershell von Usern aus Gruppen aus einer Active Directory.

Folgenden Befehl nutze ich unter Anderem:

Get-ADGroupMember -Recursive $AD_Group -Server $Server

Soweit klappt auch alles. Nun möchte ich gerne die GroupMember aus zwei unterschiedlichen Gruppen auslesen.

Get-ADGroupMember -Recursive $AD_Group1, $AD_Group2 -Server $Server

funktioniert leider nicht.

Vielen Dank

Content-Key: 259580

Url: https://administrator.de/contentid/259580

Printed on: April 23, 2024 at 23:04 o'clock

Mitglied: 114757
Solution 114757 Jan 12, 2015 updated at 10:57:39 (UTC)
Goto Top
get-adgroup -Server $Server -Filter * | ?{$_.Name -eq $AD_Group1 -or $_.Name -eq $AD_Group2} | Get-AdGroupmember -Recursive -Server $Server
Gruß jodel32
Member: makaroni
makaroni Jan 12, 2015 updated at 12:55:12 (UTC)
Goto Top
Ich benötige noch einmal deine Hilfe:
$AD_Group1 = "Internet"  
$AD_Group2 = ""  
$AD_Group3 = ""  
$AD_Group4 = ""  
$AD_Group5 = ""  


$all = @() 
$all += Get-ADGroup -Server $Server -Filter * | ?{ $_.Name -eq $AD_Group1 -or $_.Name -eq $AD_Group2 -or $_.Name -eq $AD_Group3 -or $_.Name -eq $AD_Group4 -or $_.Name -eq $AD_Group5 -or $_.Name -eq $AD_Group6 } | Get-ADGroupMember -Recursive -Credential $cred
#$all += Get-ADGroup -Server $Server -Filter * | ?{ $_.Name -eq $AD_Group1 -or $_.Name -eq $AD_Group2 -or $_.Name -eq $AD_Group3 -or $_.Name -eq $AD_Group4 -or $_.Name -eq $AD_Group5 -or $_.Name -eq $AD_Group6 } | Get-ADGroupMember | ?{$_.objectClass -eq "group"} | Get-ADGroupMember -Recursive -Credential $cred 

So habe ich mir das nun zusammengebastelt. Auf dem einen Server läuft es soweit durch und funktioniert, auf dem anderen hingegen leider nicht. Mach ich irgendwas falsch? Es wird auch keine Fehlermeldung ausgegeben. Ich möchte gerne bis zu fünf Gruppen auslesen können. Wenn ich hingegen nur eine Gruppe auslesen möchte, reicht es dann wenn in den anderen nichts steht oder werden dann fehlerhafte Daten ausgeworfen?
Mitglied: 114757
Solution 114757 Jan 12, 2015 updated at 13:59:34 (UTC)
Goto Top
Die Variable $AD_Group6 existiert in deinem Code nicht ... und du gibst beim letzten Befehl in der Pipeline den Servernamen nicht mit...

Das ganze lässt sich alternativ flexibler so machen, alle Gruppen in ein Array schreiben und dann darüber iterieren:
$all = @()
$gruppen = @("Gruppe1","Gruppe2","Gruppe3")  
$gruppen | %{$all += Get-ADGroupMember $_ -Recursive -Server $Server -Credential $cred -EA SilentlyContinue}
Member: makaroni
makaroni Jan 20, 2015 updated at 13:29:17 (UTC)
Goto Top
Ich habe noch eine kleine Frage.

ich möchte mir gerne die Benutzer Plus die darin erhaltene Gruppe ausgeben lassen

$all | select -Unique | %{$text += ($_.SamAccountName + $gruppen )} 

Den Accountnamen kann ich mir anzeigen lassen, nur die Gruppen werden beide zusammen, was ja auch korrekt ist, ausgegeben.
Ich möchte es allerdings gerne wie folgt haben:

User 1 Internet1
User 1 Internet2
User 2 Internet1
User 3 Internet2

Wie kann ich das filtern?
Mitglied: 114757
114757 Jan 20, 2015 updated at 18:11:59 (UTC)
Goto Top
ich sag nur .memberOf Attribut des Users face-wink
Und lerne erst mal Powershell vernünftig anstatt hier das Forum mit solchen Banalitäten vollzuknallen.
http://www.microsoftvirtualacademy.com/training-courses/using-powershel ...
Member: makaroni
makaroni Jan 21, 2015 at 07:50:06 (UTC)
Goto Top
Ja das ist mir bewusst, dann bekomme ich aber alle Gruppen, in dem der Nutzer ist.
Ich lese Benutzer aus den Gruppen x und y aus.
Nun möchte ich gerne die Benutzer so anzeigen lassen, dass Benutzername und nur die Gruppe x oder y angezeigt wird.

Beispiel:

Gruppen = x,y

Benutzer Harald ist in der Gruppe x
Benutzer Ingo in der x und y Gruppe
Benutzer Paul in der y Gruppe

Ausgabe:

Harald x
Ingo x
Ingo y
Paul y

Es sollen also nicht die kompletten Gruppen ausgelesen werden, sondern lediglich die, nach denen ich gerade suche.
Nutze ich das Array bekomme ich als Ausgabe:

Harald x
Ingo x y
Paul y
Mitglied: 114757
Solution 114757 Jan 21, 2015 updated at 08:19:39 (UTC)
Goto Top
$gruppen = @("Gruppe1","Gruppe2","Gruppe3")  
foreach($group in $gruppen){
    Get-ADGroupMember $group -Recursive -Server $Server -Credential $cred -EA SilentlyContinue | %{write-host "$($_.SamAccountname) : $group"}  
}