reactivan
-
Gesamte Inhalte
2 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von reactivan
-
-
Hallo,
ich habe Probleme bei der Ausführung des folgenden Powershell Scripts:
$wmiParameters = @{ Query = "SELECT * FROM __InstanceModificationEvent WITHIN 1 where TargetInstance ISA 'Win32_Service'"; sourceIdentifier = "Dienst:Status:Aktion" } $actions = { [console]::Beep(440,10) $dienst = $eventArgs.NewEvent.TargetInstance Write-Host -ForegroundColor Yellow Write-Host "Dienst " $dienst.name ": Der Status hat sich geändert. Status ist nun: " $dienst.State "!" -ForegroundColor Yellow if($dienst.State -eq 'Stopped') { Write-Host "Neustart des Dienstes ..." -ForegroundColor Yellow Start-Service $dienst.name $wmiQuery } } Register-WmiEvent $wmiParameters -Action $actions # Register-WmiEvent -query "SELECT * FROM __InstanceModificationEvent WITHIN 1 where TargetInstance ISA 'Win32_Service'" -sourceIdentifier "Dienst:Status:Aktion" -action $actions
Bei Ausführung erhalte ich die Fehlermeldung:
Register-WmiEvent : Es konnte keine Registrierung für das Ereignis vorgenommen werden. Der Klassenname ist ungültig. Gültige Klassennamen enthalten Buchstaben, Ziffern und Unterstriche. In C:\Users\Administrator\Scripts\eventWatch2.ps1:20 Zeichen:1 + Register-WmiEvent $wmiParameters -Action $actions + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Register-WmiEvent], ArgumentException + FullyQualifiedErrorId : INVALID_QUERY_IDENTIFIER,Microsoft.PowerShell.Commands.RegisterWmiEventCommand
Die auskommentierte Version ganz unten im Script oben funktioniert dagegen. Der Klassenname ist 'Win32_Service' und muss korrekt sein. Der Fehler müsste also in der Schreibweise, oder dem Einfügen von $wmiParameters liegen. Ich probiere jetzt seit einiger Zeit, komme aber alleine nicht weiter.
Beste Grüße
Michael
Problem mit Register-WmiEvent in einem Script
in Windows Forum — Scripting
Geschrieben
Nachdem die Registrierungsmail erst eben gerade angekommen ist, habe ich mittlerweile eine Anstwort im TechNet erhalten:
Die Splatting-Hashtable muss mit @ adressiert werden:
Die folgende Zeile:
Register-WmiEvent $wmiParameters -Action $actions
ist so falsch. Richtig schreibt man die Zeile mit '@wmiParameters':
Register-WmiEvent @wmiParameters -Action $actions