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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 595890
Url: https://administrator.de/contentid/595890
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
5 Kommentare
Neuester Kommentar
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
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 .Mir ist das "Verfahren" so nicht bekannt was die Powershell da macht...