Power-Shell: export-CSV liefert nur sinnlose Zeichen
Moin,
bin gerade am verzweifeln:
ich möchte eine Abfrage über die AD machen. Ausgabe an der Console klappt einwandfrei. Wenn ich aber die Daten in ein CSV schreiben will, erhalte ich nur Datenmüll.
Ausgabe mit liefert alles wie ich es will.
Wenn ich das ganze in eine CSV exportiere mit
erhalte ich eine CSV die wie folgt aussieht
#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
Wenn ich die Ausgabe mit einer Pipe umleite erhalte zwar eine Datei mit den Werten, aber ich kann nix damit anfangen, weil die Trennzeichen fehlen ... Ein Umformatieren in Excel ist nicht ohne weiteres möglich, da einzelne Spalten eben auch leer sein können
Warum klappt die Ausgabe nicht??
Thx,
Nagus
bin gerade am verzweifeln:
ich möchte eine Abfrage über die AD machen. Ausgabe an der Console klappt einwandfrei. Wenn ich aber die Daten in ein CSV schreiben will, erhalte ich nur Datenmüll.
$AdInfo = (Get-ADUser -filter * -Properties * | ft samaccountname,DisplayName,AccountExpirationDate,city, PasswordExpired, PasswordLastSet, ProfilePath -autosize)
Ausgabe mit
$AdInfo
Wenn ich das ganze in eine CSV exportiere mit
$AdInfo | export-csv -path c:\scripte\temp\output.csv -delimiter ";"
#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
Wenn ich die Ausgabe mit einer Pipe umleite erhalte zwar eine Datei mit den Werten, aber ich kann nix damit anfangen, weil die Trennzeichen fehlen ... Ein Umformatieren in Excel ist nicht ohne weiteres möglich, da einzelne Spalten eben auch leer sein können
Warum klappt die Ausgabe nicht??
Thx,
Nagus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 443561
Url: https://administrator.de/contentid/443561
Ausgedruckt am: 05.11.2024 um 04:11 Uhr
7 Kommentare
Neuester Kommentar
Hmm, da stehe ich nun auf dem Schlauch:
Immer diese Schläuche ... Wenn du einen neuen Schlauch brauchst geh in den Baumarkt 👌Mit einem select-object wähle ich die ja dann noch einmal aus.
Nö, du hast das kleine Wort sondern überlesen.Erik hat's dir doch schon verraten, nutze select-object anstatt format-table, die Format-CMDLets geben dir keine vernünftigen Objekte zurück (sondern nur reine Format-Anweisungs-Objekte), die du aber für Export-CSV brauchst! Und dazu kommt eben Select statt Format zum Einsatz, denn wir wollen ja nichts anzeigen sondern die Objekte exportieren.
Also:
Get-ADUser -filter * -Properties DisplayName,AccountExpirationDate,city, PasswordExpired, PasswordLastSet, ProfilePath | select samaccountname,DisplayName,AccountExpirationDate,city, PasswordExpired, PasswordLastSet, ProfilePath | export-csv -path 'c:\scripte\temp\output.csv' -delimiter ";" -NoType -Encoding UTF8
Ja.
ich habe doch schon die Infos so wie isch sie will:
Nein, eben gerade nicht. Format-Table formatiert die Ausgabe eines Objektes als Tabelle auf dem Bildschirm. Dann sieht der Inhalt Deiner Variablen so aus:
PS C:\> $AdInfo = (Get-ADUser -filter * -Properties * | ft samaccountname,DisplayName,AccountExpira
tionDate,city, PasswordExpired, PasswordLastSet, ProfilePath -autosize)
PS C:\> $adinfo | write-host
Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
Microsoft.PowerShell.Commands.Internal.Format.GroupStartData
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData
Deshalb steht auch in Deinem CSV kryptisches Zeug.
Machst Du das mit Select-Object, dann sieht das so aus:
PS C:\> $AdInfo = (Get-ADUser -filter * -Properties * | select-object samaccountname,DisplayName,Ac
countExpirationDate,city, PasswordExpired, PasswordLastSet, ProfilePath)
PS C:\> $adinfo | write-host
@{samaccountname=Gast; DisplayName=; AccountExpirationDate=; city=; PasswordExpired=False; PasswordLastSet=; ProfilePath
=}
Jetzt ist das ein Array von Objekten mit ihren Eigenschaften, das Du in ein CSV exportieren kannst.
hth
Erik