Jump to content

Problem mit Register-WmiEvent in einem Script


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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

 

 

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

 

 

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...