cloudy
Goto Top

PowerShell Object problem

Hallo,

ich habe aktuell ein kleines Problem.
Ich erhalte eine CSV Datei mit den Spalten Standort und IP-Adresse
zu den IP-Adressen soll nun die Verfügbarkeit geprüft werden und anschließend wieder in eine CSV-Datei Exportiert werden mit den Spalten Standort, IP-Adresse, Pingstatus.

Mein Problem, ist wie verhindere ich den Verlust des Standortes? So dass sozusagen der Pingstatus in die CSV eingefügt wird.

Import-Csv -Path '.\Eingabe.csv' -Header Standort,ComputerName | Test-NetConnection |Select-Object ComputerName,PingSucceeded | Export-Csv -Path '.\Ausgabe.csv' -Delimiter ';' -NoTypeInformation  

Content-ID: 300633

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

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

114757
Lösung 114757 01.04.2016 aktualisiert um 22:47:21 Uhr
Goto Top
Moin,
da gibt es mehrere Möglichkeiten, hier eine davon mit einer Calculated Property
(Import-Csv -Path '.\Eingabe.csv' -Header Standort,ComputerName) | select Standort,Computername, @{n="PingStatus";e={Test-NetConnection -Computername $_.Computername -EA SilentlyContinue | select -Expand PingSucceeded}} | Export-Csv -Path '.\Ausgabe.csv' -Delimiter ';' -NoTypeInformation -Encoding UTF8  
Gruß jodel32
Cloudy
Cloudy 01.04.2016 aktualisiert um 22:26:27 Uhr
Goto Top
Wie nennt man dieses Konstrukt mittels @{} bzw. @{n="";e=""}, es ist schwer danach bei google zu suchen... Hast du dazu weitere Informationen?
Und wieso muss das Import-Csv in Klammern? Welchen unterschied macht das?
114757
Lösung 114757 01.04.2016 aktualisiert um 22:51:00 Uhr
Goto Top
Zitat von @Cloudy:

Wie nennt man dieses Konstrukt mittels @{} bzw. @{n="";e=""}, es ist schwer danach bei google zu suchen... Hast du dazu weitere Informationen?
Habe ich oben schon genannt. Das ist eine Calculated Property
Das n steht für den Namen der Eigenschaft welche erstellt werden soll und das e bedeutet Expression in der der Wert der Eigenschaft in einem Skriptblock ausgegeben werden kann.

Und wieso muss das Import-Csv in Klammern? Welchen unterschied macht das?
Damit wird der Import der CSV erst komplett in den Speicher geholt bevor die Objekte in die Pipe gelangen. Das ist z.B. dann nötig wenn man in einer Pipe am Ende wieder in die selbe Datei zurückschreiben möchte. Das ist bei mir Gewohnheitssache, hatte erst nicht gesehen das du den Output in eine andere Datei schreibst.