Active Directory Gruppen auslesen
Guten Abend,
ich habe mir das Codeschnipsel geschnappt und möchte dieses noch erweitern.
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
Leider wird mir die Beschreibung nicht angezeigt.
Hat wer einen Rat für mich.
Grüße Mario
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 608453
Url: https://administrator.de/forum/active-directory-gruppen-auslesen-608453.html
Ausgedruckt am: 11.04.2025 um 12:04 Uhr
12 Kommentare
Neuester Kommentar
Hi
Da fehlt ein -Identity
[Edit]
Ist aber eh eine nutzlose Zeile weil du die Group ja schon hast.
Besser wäre
$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}
}
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

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 
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