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

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

 

 

Link zu diesem Kommentar

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

 

 

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...