lupolo
Goto Top

PS alle Mitglieder einer Sicherheitsgruppe bzw. OU

Hallo,

ich versuche ein PS Script zu erstellen, welches mir am Ende alle Mitglieder einer Sicherheitsgruppe bzw. einer OU auswirft. Klar - über

Get-ADGroup -Identity "GRUPPE1234" | Format-Table name  

ganz einfach. Nun möchte ich aber nicht alle meine Sicherheitsgruppen einzel einfügen über eine csv. Datei importieren.

Dieser Befehl wirft mir alle Gruppen einer OU aus.
get-adobject -Filter 'ObjectClass -eq "group"' -SearchBase "CN=Users,DC=domain,DC=meine,DC=local" |  
    Format-Table name

Wie bekomm ich es hin, dass er mir zu den Gruppen a) die Mitglieder und b) die "description" der Sicherheitsgruppe auswirft?
Ich denke an eine Schleife, welche mir die AD Gruppen in eine Laufzeitvariable speichert und dann über den ersten Befehl die Daten auswirft.

Nur eben mit Benutzer
Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties * | Format-Table -Wrap -AutoSize description, cn   

description cn
--
\\file\D$\Data\IT sec_Data_IT-RW
\\file\D$\Data\IT sec_Data_IT-R

hat da jemand eine Idee?

Content-ID: 327976

Url: https://administrator.de/forum/ps-alle-mitglieder-einer-sicherheitsgruppe-bzw-ou-327976.html

Ausgedruckt am: 22.12.2024 um 19:12 Uhr

132272
132272 30.01.2017 um 16:19:22 Uhr
Goto Top
Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties * | select Name,Description,@{n='Mitglieder';e={(Get-ADGroupMember $_.SamAccountName -Recursive | Select -Expand SamAccountName) -join ","}}  
Gruß Nachfrage
lupolo
lupolo 30.01.2017 um 16:34:33 Uhr
Goto Top
Servus Nachfrage,

danke für deine Antwort. Ist es möglich das auch untereinander ausgeben zu lassen? Ich habe teilweise sehr viele AD Benutzer in einer Gruppe und da schneidet er mir das irgendwann ab.

Sowas habe ich für den Exchange:
write-output “” > C:\temp\outputDGmembers.txt
get-distributiongroup | Sort -Property DisplayName | foreach {
$name = $_.displayname
$mailadresse = $_.PrimarySmtpAddress
$output = ‘Group Name: ‘ + $Name + ' ' + $mailadresse  
write-output $output >> C:\temp\outputDGmembers.txt
Get-DistributionGroupMember $name | Sort -Property DisplayName | Select DisplayName, Alias, Department >> C:\temp\outputDGmembers.txt
write-output “” “” >> C:\temp\outputDGmembers.txt
}

Grüße lupo
132272
132272 30.01.2017 aktualisiert um 16:44:31 Uhr
Goto Top
Mach doch einfach statt dem Komma einen Zeilenumbruch, und ft -autosize -Wrap
Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties * | select Name,Description,@{n='Mitglieder';e={(Get-ADGroupMember $_.SamAccountName -Recursive | Select -Expand SamAccountName) -join "`r`n"}} | ft -Autosize -Wrap  
Ich würde das statt als String auszugeben das Object direkt als CSV ausgeben ...
lupolo
lupolo 30.01.2017 um 16:42:24 Uhr
Goto Top
ok also für die Darstellung hab ich es jetzt schon mal so hinbekommen:

Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties * |   
    select Name,Description,@{n='Mitglieder';e={(Get-ADGroupMember $_.SamAccountName -Recursive | Select -Expand name) -join ";"}} |  
    Format-Table -Wrap -AutoSize name, Description, Mitglieder >C:\temp\outputDGmembers.txt


glaube das reicht. Wenn ich es noch wie im Exchange hin bekommen wäre, wäre es natürlich noch besser face-smile
lupolo
lupolo 30.01.2017 um 16:54:11 Uhr
Goto Top
Zitat von @132272:
Ich würde das statt als String auszugeben das Object direkt als CSV ausgeben ...

...ich auch. Aber hier wirft er mir immer etwas kryptisches aus:
#TYPE Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
ClassId2e4f51ef21dd47e99d3c952918aff9cd,"pageHeaderEntry","pageFooterEntry","autosizeInfo","shapeInfo","groupingEntry"  
033ecb2bc07a4d43b5ef94ed5a35d280,,,"Microsoft.PowerShell.Commands.Internal.Format.AutosizeInfo","Microsoft.PowerShell.Commands.Internal.Format.TableHeaderInfo",  
9e210fe47d09416682b841769c78b8a3,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
4ec4f0187cb04f4cb6973460dfe252df,,,,,
cf522b78d86c486691226b40aa69e95c,,,,,

Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties *|   
    select Name,Description,@{n='Mitglieder';e={(Get-ADGroupMember $_.SamAccountName -Recursive | Select -Expand name) -join "`n"}} |  
    Format-Table -Wrap -AutoSize name, Description, Mitglieder |
    Export-Csv C:\temp\outputDGmembers1.csv
132272
132272 30.01.2017 aktualisiert um 17:11:07 Uhr
Goto Top
Kein Wunder wenn du Format-Strings an Export-CSV übergibst X-/ das kann niemals klappen den hier musst du reine Objekte übergeben.
Get-ADGroup -Filter * -SearchBase "OU=IT,OU=FS,OU=Sicherheitsgruppen,OU=Gruppen,DC=domaene,DC=meine,DC=local" -properties * | select Name,Description,@{n='Mitglieder';e={(Get-ADGroupMember $_.SamAccountName -Recursive | Select -Expand SamAccountName) -join "`r`n"}} | export-csv 'c:\temp\members.csv' -NoType -Delimiter ";" -Encoding UTF8