rme1985
Goto Top

Powershell export csv Werte in Zeilen nicht in Spalten

Guten Morgen,

ich wollte mir gerne einen Report unserer AD User ziehen. Und zwar wollte ich gerne die Gruppenmitgliedschaften eines jeden Users in eine Excelliste ausgeben lassen.

Dazu habe ich folgendes Script verwendet


get-aduser  -filter *  -properties * | select GivenName,Surname,Mail,Department,Description,City,Office,SamAccountName,extensionAttribute1,extensionAttribute2,@{n="Gruppen";e={($_.MemberOf | %{Get-ADGroup $_} | select -Expand Name ) -join ','}} | export-csv 'T:\export-aduser.csv' -delimiter ";" -NoTypeInformation -Encoding UTF8  


Das funktioniert soweit auch wunderbar, allerdings schreibt er mir die Gruppen nebeneinander in jede "Spalte" quasi eine Gruppe. Wenn ich jetzt in der Exceltabelle noch hinter jede Gruppe etwas schreiben möchte, dann wird es etwas kompliziert.

Besteht irgendwie die Möglichkeit die Gruppen in eine Spalte zu bekommen, sodass ich dann in der Spalte danach meine Infos eintragen kann?

Also z.B. Spalte A Username Spalte B Gruppe1 dann in der nächsten Zeile dann Gruppe 2 usw. und beim nächsten User dann wieder das gleiche?

Hat jemand von Euch eine Idee wie ich das machen kann? Ich kenne nur diese Formatierung wie in meinem Script zusehen, dass alles hintereinander weggeschrieben wird.

Vielen Dank face-smile

Content-ID: 595890

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

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

145033
Lösung 145033 13.08.2020 aktualisiert um 08:59:43 Uhr
Goto Top
Täglich grüßt das Murmeltier, findet sich doch hier bis zum Abwinken 😉, einfach ne innere Schleife über die Gruppen rein pappen ...
get-aduser  -filter *  -properties * -PipelineVariable user | %{
    Get-ADPrincipalGroupMembership $_.SamAccountName -PipelineVariable group | %{
        $user | Select GivenName,Surname,Mail,Department,Description,City,Office,SamAccountName,extensionAttribute1,extensionAttribute2,@{n='Group';e={$group.Name}}  
    }
} | export-csv 'T:\export-aduser.csv' -delimiter ";" -NoTypeInformation -Encoding UTF8  
RME1985
RME1985 13.08.2020 um 08:51:11 Uhr
Goto Top
die Frage wäre ja wonach ich hätte suchen müssen.

Leider funktioniert dein Vorschlag aber nicht.

et-ADPrincipleGroupMembership : Die Benennung "Get-ADPrincipleGroupMembership" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren
Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:4 Zeichen:5

back-to-topGet-ADPrincipleGroupMembership $_.SamAccountName -PipelineVariabl ...

back-to-top~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : ObjectNotFound: (Get-ADPrincipleGroupMembership:String) , CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
RME1985
RME1985 13.08.2020 um 08:54:52 Uhr
Goto Top
Tippfehler ;)

Get-ADPrincipalGroupMembership
RME1985
RME1985 13.08.2020 um 08:57:38 Uhr
Goto Top
Funktioniert vielen Dank.

Was mich nochmal interessieren würde, wonach hätte ich suchen müssen um diese Lösung finden zu können?

Mir ist das "Verfahren" so nicht bekannt was die Powershell da macht...
145033
145033 13.08.2020 aktualisiert um 09:13:20 Uhr
Goto Top
Zitat von @RME1985:

Funktioniert vielen Dank.
Sorry für den Tippfehler ist korrigiert.
Was mich nochmal interessieren würde, wonach hätte ich suchen müssen um diese Lösung finden zu können?

Mir ist das "Verfahren" so nicht bekannt was die Powershell da macht...
Das sind simple ForEach Schleifen. Wenn man mal in sich geht und überlegt, ich brauche für jede Gruppe jedes Users eine neue Zeile, dann kommt man eigentlich auch selbst drauf das das mit zwei geschachtelten Schleifen erledigt ist face-wink.