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-Key: 595890

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

Printed on: April 19, 2024 at 00:04 o'clock

Mitglied: 145033
Solution 145033 Aug 13, 2020 updated at 06:59:43 (UTC)
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  
Member: RME1985
RME1985 Aug 13, 2020 at 06:51:11 (UTC)
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
Member: RME1985
RME1985 Aug 13, 2020 at 06:54:52 (UTC)
Goto Top
Tippfehler ;)

Get-ADPrincipalGroupMembership
Member: RME1985
RME1985 Aug 13, 2020 at 06:57:38 (UTC)
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...
Mitglied: 145033
145033 Aug 13, 2020 updated at 07:13:20 (UTC)
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.