Variable Abfrage der Eventlogs mit Powershell 1.0
Ich verstehe den Unterschied nicht ... 
Um Abfragen der Eventlogs flexibel zu gestalten, wollte ich die zu suchenden Events mittels einer Variable übergeben.
Beispiel:
Packe ich die Abfrage in eine Variable und teste damit die Ausgabe, dann sieht das so aus:
Warum, oder besser: wie kann ich die Abfrage korrekt mit meiner Variablen gestalten?
Für jede gute Idee ist Willkommen ..
Feuerstein08
Um Abfragen der Eventlogs flexibel zu gestalten, wollte ich die zu suchenden Events mittels einer Variable übergeben.
Beispiel:
get-eventlog -logname system | where-object {($_.Eventid -eq 6005)} | select Index, EventID, Source, Message
Index EventID Source Message
----- ------- ------ -------
8824 6005 EventLog The Event log service was ...
8693 6005 EventLog The Event log service was ...
8550 6005 EventLog The Event log service was ...
8413 6005 EventLog The Event log service was ...
8169 6005 EventLog The Event log service was ...
$query = '($Eventid -eq 6005)'
get-eventlog -logname system | where-object { $query } |select EventID, Source, Message
Index EventID Source Message
----- ------- ------ -------
9028 7036 Service Control Manager The description for Event ...
9027 19 Microsoft-Windows-WindowsU... The description for Event ...
9026 7036 Service Control Manager The description for Event ...
9025 7036 Service Control Manager The description for Event ...
9024 7040 Service Control Manager The description for Event ...
9023 4383 Microsoft-Windows-Servicing Windows Servicing complete...
9022 4373 Microsoft-Windows-Servicing Windows Servicing successf...
...
Für jede gute Idee ist Willkommen ..
Feuerstein08
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139928
Url: https://administrator.de/forum/variable-abfrage-der-eventlogs-mit-powershell-1-0-139928.html
Ausgedruckt am: 23.04.2025 um 01:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo @Feuerstein08,
Reicht dir
Wenn du das Skript nicht hast (k.A. ob das von PS 1.0 kommt oder bei XP Pro schon dabei ist etc..) kann ich es dir gerne schicken.
Normalerweise befindet es sich in %windir%/System32
Greetz
Snow
Reicht dir
CSCRIPT EVENTQUERY.vbs <arguments>
nicht?Wenn du das Skript nicht hast (k.A. ob das von PS 1.0 kommt oder bei XP Pro schon dabei ist etc..) kann ich es dir gerne schicken.
Normalerweise befindet es sich in %windir%/System32
Greetz
Snow
Zitat von @Feuerstein08:
Beispiel:
vergleiche dazu:Beispiel:
get-eventlog -logname system | where-object {($_.Eventid -eq 6005)} | select Index, EventID, Source, Message
Zitat von @Feuerstein08:
$query = '($Eventid -eq 6005)'
$query = '($Eventid -eq 6005)'
get-eventlog -logname system | where-object { $query } |select EventID, Source, Message
Da fehlt ein
_.
vor Eventid, oder?
Hallo @Feuerstein08,
Habs jetzt mal ausprobiert..
Geschweifte Klammern um einen Text bewirken, dass der Inhalt NICHT ausgewertet wird. So steht bei der Ausführung eben immer noch
Zwar könnte man die geschweiften Klammern auch in
Kurz:
SO wird das nichts... aber da gibts sicherlich auch 'nen workaround.
Greetz
Snow
Habs jetzt mal ausprobiert..
Geschweifte Klammern um einen Text bewirken, dass der Inhalt NICHT ausgewertet wird. So steht bei der Ausführung eben immer noch
where-object $query
zwischen den Pipes.Zwar könnte man die geschweiften Klammern auch in
$query
reinschreiben ($query= '{($_.Eventid-eq 6005)}'
). Bringt aber nichts:Zitat von
PS U:\> get-eventlog -logname system|where-object $query|select Index, EventID, Source, Message
Where-Object : A parameter cannot be found that matches parameter name '{($_.Eventid -eq 6005)}'.
At line:1 char:42
+ get-eventlog -logname system|where-object <<<< $query|select Index, EventID, Source, Message
powershell
PS U:\> get-eventlog -logname system|where-object $query|select Index, EventID, Source, Message
Where-Object : A parameter cannot be found that matches parameter name '{($_.Eventid -eq 6005)}'.
At line:1 char:42
+ get-eventlog -logname system|where-object <<<< $query|select Index, EventID, Source, Message
Kurz:
SO wird das nichts... aber da gibts sicherlich auch 'nen workaround.
Greetz
Snow
schön zu hören
Was genau hinter diesem Befehl "$sb = [ScriptBlock]::Create($query)" steckt muss ich noch herausfinden (will ja
schließlich auch was lernen
)
schließlich auch was lernen
Gute Frage. ich weiß selbst nicht, was das nun genau bewirkt... Bin nicht so der Powershell-Profi bzw. überhaupt so Powershellbenutzer. Aber ein paar debugging-skills und die Fähigkeit zu lesen hilft oft schon wunder
Gruß
Feuerstein08
Feuerstein08
Gruß
Snowman25