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
Please also mark the comments that contributed to the solution of the article
Content-Key: 608453
Url: https://administrator.de/contentid/608453
Printed on: April 26, 2024 at 06:04 o'clock
12 Comments
Latest comment
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