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