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

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

Printed on: April 26, 2024 at 09:04 o'clock

Member: Doskias
Doskias Nov 10, 2021 at 15:12:58 (UTC)
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
Member: RicoPausB
RicoPausB Nov 10, 2021 at 16:40:18 (UTC)
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.
Mitglied: 149569
Solution 149569 Nov 10, 2021 updated at 17:05:13 (UTC)
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
Member: RicoPausB
RicoPausB Nov 12, 2021 at 09:23:52 (UTC)
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.