mmaiwald
Goto Top

Active Directory Gruppen auslesen

Guten Abend,

ich habe mir das Codeschnipsel geschnappt und möchte dieses noch erweitern.

$data = @()
$groups = Get-ADGroup -Filter {GroupCategory -eq 'Distribution'} -SearchBase "OU=Test,DC=YOURDOMAIN,DC=local"   
$groups | %{
    $users = (Get-ADGroupMember -Identity $_.Name -recursive | select -ExpandProperty Name) -join ","  
    $data += New-Object PSObject -Property @{"Gruppe"=$_.Name;"Benutzer"=$users}  
}
$data | export-csv 'C:\groupmembers.csv' -Delimiter ';' -NoType -Encoding UTF8  

Dazu möchte ich noch die Beschreibung der Gruppe einfügen, sodass ich dann folgende Ausgabe erhalten möchte:
Gruppe; Beschreibung; Mitglieder

Hier meine Anpassung

$data = @()
$groups = Get-ADGroup -Filter *
$groups | %{
    $users = (Get-ADGroupMember -Identity $_.Name -recursive | select -ExpandProperty Name) -join ","  
    $beschreibung = (Get-ADGroup -filter * -Properties description | select -ExpandProperty Description)
    $data += New-Object PSObject -Property @{"Beschreibung"=$beschreibung;"Mitglieder"=$users;"Gruppe"=$_.Name}  
}
$data | export-csv 'C:\temp\groupmembers.csv' -Delimiter ';' -NoType -Encoding UTF8  

Leider wird mir die Beschreibung nicht angezeigt.
Hat wer einen Rat für mich.

Grüße Mario

Content-ID: 608453

Url: https://administrator.de/forum/active-directory-gruppen-auslesen-608453.html

Ausgedruckt am: 11.04.2025 um 12:04 Uhr

SeaStorm
SeaStorm 29.09.2020 aktualisiert um 21:25:04 Uhr
Goto Top
Hi

$beschreibung = (Get-ADGroup -filter * -Properties description

Da fehlt ein -Identity

[Edit]
Ist aber eh eine nutzlose Zeile weil du die Group ja schon hast.
Besser wäre
$groups = Get-ADGroup -Properties * -Filter *
$groups | %{
    $users = (Get-ADGroupMember -Identity $_.Name -recursive | select -ExpandProperty Name) -join ","  
    $beschreibung = $_.description
    $data += New-Object PSObject -Property @{"Beschreibung"=$beschreibung;"Mitglieder"=$users;"Gruppe"=$_.Name}  
}
MMaiwald
MMaiwald 29.09.2020 um 21:24:57 Uhr
Goto Top
Hi ist mir auch gerade in den Sinn gekommen.
Leider zeigt er weiterhin nichts an.

Irgendeine andere Idee
SeaStorm
SeaStorm 29.09.2020 aktualisiert um 21:26:40 Uhr
Goto Top
die -Properties * musste noch rein. war zu schludrig face-smile
Besser wäre eigentlich die Properties die du brauchst da anzugeben. Aber mach das mal selbst face-smile
MMaiwald
MMaiwald 29.09.2020 um 21:27:54 Uhr
Goto Top
Er zeigt mir lediglich die Gruppe und die Mitglieder korrekt an.
SeaStorm
SeaStorm 29.09.2020 um 21:31:44 Uhr
Goto Top
hast du mein edit gesehen?
$groups = Get-ADGroup -Properties * -Filter *
MMaiwald
MMaiwald 29.09.2020 aktualisiert um 21:38:26 Uhr
Goto Top
Ja habe die Ergänzung ausprobiert.
Leider wird weiterhin die Beschreibung nicht angezeigt.
SeaStorm
SeaStorm 29.09.2020 um 21:56:02 Uhr
Goto Top
Klappt bei mir ....
$data = @()
$groups = Get-ADGroup -Properties * -Filter "name -eq 'grpTestUsers'"   
$groups | %{
    $users = (Get-ADGroupMember -Identity $_.Name -recursive | select -ExpandProperty Name) -join ","  
    $beschreibung = $_.description
    $data += New-Object PSObject -Property @{"Beschreibung"=$beschreibung;"Mitglieder"=$users;"Gruppe"=$_.Name}  
}
$data 

Beschreibung    Mitglieder Gruppe      
------------    ---------- ------      
TestDescription testman    grpTestUsers
MMaiwald
MMaiwald 29.09.2020 um 22:08:30 Uhr
Goto Top
Ist ja interessant. Bei mir klappt es jetzt auch. Was ist jetzt anders außer der Filter?
Eine Frage der Anordnung der Ausgabe habe ich noch.

Egal wie ich diese anordne, die Reihenfolge wird mir nicht wie gewünscht angezeigt

Gruppe; Beschreibung; Mitglieder

Was kann ich tun?
SeaStorm
Lösung SeaStorm 29.09.2020 um 22:16:31 Uhr
Goto Top
$data | select Gruppe, Beschreibung, Mitglieder | export-csv.....
MMaiwald
MMaiwald 29.09.2020 um 22:21:54 Uhr
Goto Top
Besten Dank, darauf hätte ich auch selbst kommen können face-wink

Schönen Abend
MMaiwald
MMaiwald 29.09.2020 um 22:22:53 Uhr
Goto Top
$data = @()
$groups = Get-ADGroup -Properties * -Filter * 
$groups | %{
    $users = (Get-ADGroupMember -Identity $_.Name -recursive | select -ExpandProperty Name) -join ","  
    $beschreibung = $_.description
    $data += New-Object PSObject -Property @{"Gruppe"=$_.Name;"Beschreibung"=$beschreibung;"Mitglieder"=$users}  
}
$data | select Gruppe, Beschreibung, Mitglieder | Export-Csv 'C:\temp\groupmembers.csv' -Delimiter ';' -NoType -Encoding UTF8  
145916
145916 30.09.2020 aktualisiert um 10:37:57 Uhr
Goto Top
Lässt sich auf einen Einzeiler reduzieren, ist auch schneller als erst ein Array immer wieder mit += zu füllen, dass ist im Speicher ein großer Aufwand weil bei jedem += das Array im Speicher zerstört werden und ein neues aufgebaut werden muss face-wink
Get-ADGroup -Filter * -Properties Description | select @{n='Gruppe';e={$_.Name}},@{n='Beschreibung';e={$_.Description}},@{n='Mitglieder';e={(Get-ADGroupMember -Identity $_.Name -recursive | select -Expand Name) -join ","}} | Export-Csv 'C:\temp\groupmembers.csv' -Delimiter ';' -NoType -Encoding UTF8