ricopausb
Goto Top

Export-csv nur bestimmte Spalten

Moin ...

... ich habe ein Script gebastelt, mit dem ich mittels einer CSV-Datei Nutzer Office365 anlegen kann und den Änderungszwang bei ersten Anmeldung unterbinde.

Das ist für unsere wöchentlich wechselnden User so sinnvoll.

Import-Csv -Path "e:\o365-import.csv" | foreach {New-MsolUser -Department $_.Abteilung -FirstName $_.Vorname -LastName $_.Nachname -DisplayName $_.Anzeigename -UserPrincipalName $_.Benutzername -UsageLocation DE -LicenseAssignment reseller-account:STANDARDWOFFPACK_STUDENT -ForceChangePassword $false}  

In der Shell erfolgt dann eine Anzeige wie folgt:
Password UserPrincipalName         DisplayName    isLicensed
-------- -----------------         -----------    ----------
Abc12345 bernd.brot@mydomain.de  Bernd Brot  True

Diese Ausgabe kriege ich aber so nicht in eine File exportiert.

Mit export-csv kriege ich eine Tabelle mit drölfunachzig Spalten und finde keine Lösung, die Ausgabe anzupassen.

Wie erreiche ich, dass ich in der Datei nur das Password und den vollständigen UPN sehe?
Notfalls auch die ganze Ausgabe der Shell, sofern UPN und DisplayName nicht abgeschnitten werden.

Hoffe, jmd. hat eine Idee.

greetz

Der Rico

Content-ID: 1490500696

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

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

Doskias
Doskias 10.11.2021 um 16:12:58 Uhr
Goto Top
Moin Rico,

Wieso postest du nicht dein ganzes Skript? Du willst ja nicht nur eine halbe Lösung. Und ein Beispiel deiner CSV-Datei. Das würde sehr helfen. Beispiel von mir:
CSV-Datei
Spalte 1;Spalte 2;Spalte 3;Spalte 4
dies;ist;ein;Test
Dies;ist;Zeile;Zwei

PS-Befehl:
Import-Csv C:\temp\csv\test.csv -Delimiter ";"|Select-Object "Spalte 1", "Spalte 2", "Spalte 4"| Export-csv c:\temp\csv\test2.csv -Delimiter ";"   

Inhalt der neuen CSV-Datei:
"Spalte 1";"Spalte 2";"Spalte 4"  
"dies";"ist";"Test"  
"Dies";"ist";"Zwei"  

Wenn es bei dir nicht klappt, dann vermute ich:
1. keine Delimiter gesetzt
2. Select-Object genutzt

Aber das ist nur geraten, weil du gefühlt nur die hälfte Preis gibst. Ich verstehe auch deinen Code im Zusammenhang mit dem Ergebnis nicht. Da hast du deutlich mehr mehr als bei der Ausgabe. Wo wir es reduziert und wie?

Mir fehlt da n bisschen was und so wird die Hilfe hier in einer wilden Raterei enden.

Gruß
Doskias
RicoPausB
RicoPausB 10.11.2021 um 17:40:18 Uhr
Goto Top
Hallo.
Das meldet New-MsolUser legt Nutzer im Office365 an und generiert diesen Output in der console.
Ich wüsste gar nicht, wie ich da ein Select unterbringen sollte.
149569
Lösung 149569 10.11.2021 aktualisiert um 18:05:13 Uhr
Goto Top
Zitat von @RicoPausB:
Ich wüsste gar nicht, wie ich da ein Select unterbringen sollte.
Na so ...

Mit Ausgabe in CSV
Import-Csv -Path "e:\o365-import.csv" | foreach {New-MsolUser -Department $_.Abteilung -FirstName $_.Vorname -LastName $_.Nachname -DisplayName $_.Anzeigename -UserPrincipalName $_.Benutzername -UsageLocation DE -LicenseAssignment reseller-account:STANDARDWOFFPACK_STUDENT -ForceChangePassword $false} | select Password,UserPrincipalName | export-csv .\export.csv -delimiter ";" -NoType -Encoding UTF8  

oder nur mit Ausgabe auf der Konsole ohne das die Shell was abschneiden darf
Import-Csv -Path "e:\o365-import.csv" | foreach {New-MsolUser -Department $_.Abteilung -FirstName $_.Vorname -LastName $_.Nachname -DisplayName $_.Anzeigename -UserPrincipalName $_.Benutzername -UsageLocation DE -LicenseAssignment reseller-account:STANDARDWOFFPACK_STUDENT -ForceChangePassword $false} | format-table Password,UserPrincipalName -AutoSize -Wrap  

Vielleicht erst mal die Grundlagen lesen
Kapitel 5: Formatierung, Aliase, Anbieter, Vergleich
Powershell Leitfaden für Anfänger
RicoPausB
RicoPausB 12.11.2021 um 10:23:52 Uhr
Goto Top
Ich danke für die beiden Tipps und für die Links, die bis dato tatsächlich vollends an mir vorbei geflossen sind.
Tipp1 war tatsächlich genau das, was ich für den Moment benötigt habe.