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!

Recommended Posts

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 to comment

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 to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...