vcxy80

Powershell Ausgabe in CSV

Halli Hallo,

ich versuche ein Script zu basteln, welches für alle Server in einem Textfile der OS ermittelt und anschliessend das Ergebnis in einem CSV-File ausgibt. Folgendes hab ich erstellt:


function get-os ($file) {
$names = get-content $file
foreach ($name in $names) {
$name
gmwi win32_OperatingSystem -prop Caption -comp $name
}
}

get-os C:\srvnames.txt ¦ export-csv "C:\srv-os.txt


Leider erhalte ich kein Textfile mit dem Ergebnis - habt Ihr ne Idee was ich da falsch mache?

Danke + Gruss
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 119810

Url: https://administrator.de/forum/powershell-ausgabe-in-csv-119810.html

Ausgedruckt am: 12.06.2025 um 00:06 Uhr

TsukiSan
TsukiSan 06.07.2009 um 14:21:27 Uhr
Goto Top
Hallo,

lösche bitte mal das Anführungszeichen vor C:\srv-os.txt
get-os C:\srvnames.txt ¦ export-csv C:\srv-os.txt


Gruß
Tsuki
vcxy80
vcxy80 06.07.2009 um 14:48:18 Uhr
Goto Top
Grüss Dich,

also so oder:

function get-os ($file) {
$names = get-content $file
foreach ($name in $names) {
$name
gwmi win32_OperatingSystem -prop Caption -comp $name
}
}

$a = get-os
$a ¦ select-object ¦ export-csv -path C:\srv-os.txt


passiert leider nichts...

Wenn ichs manuell in PS-Windows tippsle passiert folgendes:

PS C:\Documents and Settings\userID> function get-os ($file) {
$names = get-content $file
foreach ($name in $names) {
$name
gwmi win32_OperatingSystem -prop Caption -comp $name
}
}

PS C:\Documents and Settings\userID> $a = get-os
Get-Content : Cannot bind argument to parameter 'Path' because it is null.
At line:2 char:25
back-to-top$names = get-content <<<< $file
Get-WmiObject : Cannot validate argument because it is null.
At line:5 char:55
back-to-topgwmi win32_OperatingSystem -prop Caption -comp <<<< $name
PS C:\Documents and Settings\userID>
TsukiSan
TsukiSan 06.07.2009 um 15:26:29 Uhr
Goto Top
Also,Schritt für Schritt.

Welchen Pfad hast du "$File" zugewiesen?
Beispiel:
$File = Get-Content "C:\Test.log"
Da scheint mir in deiner Fehlerausgabe das Problem zu liegen, das Powershell NULL ausgibt. Bitte mal prüfen!
Den Rest schaue ich mal weiter.

Gruß
Tsuki
Ps.: In der Zwischenzeit mal was zum testen face-wink
$Proz = get-process
$Proz | select-object Name,Path,Company | Export-csv -path C:\Prozesse.csv
vcxy80
vcxy80 07.07.2009 um 09:14:23 Uhr
Goto Top
aaaaaaaaaaaaaalso ich hatte wohl einen Anflug von Blindheit face-wink hatte das falsche Zeichen fürs pipen verwendet - lol // damit hat sich mein Grundproblem erledigt, aber eine Frage hab ich noch, nochmal zum Code:

  1. Also hier die Funktion

PS C:\Documents and Settings\userID> function get-os ($file) {
$names = get-content $file
foreach ($name in $names) {
$name
gwmi win32_operatingsystem -prop caption -comp $name
}
}

  1. Dann der Aufruf der Funktion mit der Angabe des Sourcefiles für $file

get-os C:\srvnames.txt

  1. Soweit funkt das, dann will ich eben den Inhalt in ein CSV-File exportieren

get-os C:\srvnames.txt | Select-Object Caption | export-csv C:\export.txt

  1. Aber natürlich bringt mir "Caption" allein wenig - ich sollte noch den Servernamen dazu anzeigen lassen - blos wie funkt das?

Das geht nicht:

get-os C:\srvnames.txt | Select-Object Name,Caption | export-csv C:\export.txt

Bzw. das auch nicht:

get-os C:\srvnames.txt | Select-Object $Name,Caption | export-csv C:\export.txt

Danke vielmals für die Hilfe!
TsukiSan
TsukiSan 07.07.2009 um 10:35:44 Uhr
Goto Top
Hi,

ersetze mal das KOMMA durch ein Leerzeichen:
get-os C:\srvnames.txt | Select-Object Name Caption | export-csv C:\export.txt
kann jetzt auf die Schnelle nicht testen, aber in meinem Schnipsel habe ich die "Überschriften" für das CSV-File auch nicht durch Komma vom "........object Name,Patth,Company" getrennt.

Gruß
Tsuki

Ps.: ich bin jetzt aber auch blind. Du mlchtest doch anstelle "Caption" den Servernamen haben
probier mal "SET-Caption = XXXX"
ich muss wech. Sorry!
TsukiSan
TsukiSan 07.07.2009 um 10:45:05 Uhr
Goto Top
...also, noch schnell einen Kaffee face-wink
$Caption = "Servername" ' den aus der Datei holen!  
get-os C:\srvnames.txt | Select-Object $Caption | export-csv C:\export.txt
dann müßte "Caption auch beschrieben sein.

Probier mal

Nun aber wirklich wech.
Bis später
Tsuki
vcxy80
vcxy80 07.07.2009 um 12:31:41 Uhr
Goto Top
Hoi - hat sich bereits erledigt. Hatte zuvor Probleme hier die Lösung zu posten bzw. war schon alles richtig lag an mir - ich Vollnase hatte das falsche zeichen zum pipen verwendet (kommt davon wenn man ein ungewohntes tastaturlayout einsetzt) - also so funkt es (aber vielen Dank für Deine Unterstützung):

function get-os ($file) {
$names = get-content $file
foreach ($name in $names) {
$name
gwmi win32_OperatingSystem -prop Caption,CSName -comp $name
}
}


get-os C:\srvnames.txt | Select-Object CSName,Caption | export-csv C:\export.csv