Powershell Variablen und Pipes
Ich verstehe hier das Verhalten von Powershell nicht, wenn ich den Befehl
ausführe, erhalte ich z. B. folgende Meldung: 'Ausführen des Vorgangs "Export-Csv" für das Ziel "Anwendung".'
Wenn ich aber nun:
ausführe, erhalte ich folgende Meldung: 'Ausführen des Vorgangs "Export-Csv" für das Ziel "E:\System.Diagnostics.EventLog.LogDisplayName".'.
Kann mir jemand erklären, warum "$p.LogDisplayName" hier zwei unterschiedliche werte liefert?
Get-EventLog -LogName * | ForEach-Object {$p = $_; $p.Entries |Export-Csv -path $p.LogDisplayName -Debug}
Wenn ich aber nun:
Get-EventLog -LogName * | ForEach-Object {$p = $_; $p.Entries |Export-Csv -path $InventoryPath\$computername\$p.LogDisplayName -Debug}
Kann mir jemand erklären, warum "$p.LogDisplayName" hier zwei unterschiedliche werte liefert?
Please also mark the comments that contributed to the solution of the article
Content-Key: 297369
Url: https://administrator.de/contentid/297369
Printed on: April 26, 2024 at 13:04 o'clock
2 Comments
Latest comment
Moin.
Weil du eine Eigenschaft eines Objektes abfragst und die Shell hier den Punkt hinter der Variablen $p als String interpretiert also nur das $p übernimmt und das ist nunmal ein Objekt des Typs System.Diagnostics.EventLog.LogDisplayName.
Schreibe den Pfad also besser so dann ist klar was die Shell damit machen soll.
oder auch so
Gruß jodel32
Weil du eine Eigenschaft eines Objektes abfragst und die Shell hier den Punkt hinter der Variablen $p als String interpretiert also nur das $p übernimmt und das ist nunmal ein Objekt des Typs System.Diagnostics.EventLog.LogDisplayName.
Schreibe den Pfad also besser so dann ist klar was die Shell damit machen soll.
....... | Export-Csv -path "$InventoryPath\$computername\$($p.LogDisplayName)"
....... | Export-Csv -path ("$InventoryPath\$computername\" + $p.LogDisplayName)
Gruß jodel32