reactivan 0 Geschrieben 2. Oktober 2020 Melden Teilen Geschrieben 2. Oktober 2020 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 Zitieren Link zu diesem Kommentar
reactivan 0 Geschrieben 4. Oktober 2020 Autor Melden Teilen Geschrieben 4. Oktober 2020 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.