Register-WmiEvent

Abonniert ein WMI-Ereignis (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation).

Syntax

Register-WmiEvent [-Class] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Beschreibung

Das Cmdlet "Register-WmiEvent" abonniert WMI-Ereignisse auf dem lokalen Computer oder einem Remotecomputer.

Wenn das abonnierte WMI-Ereignis ausgelöst wird, wird es der Ereigniswarteschlange in der lokalen Sitzung hinzugefügt, auch wenn das Ereignis auf einem Remotecomputer eintritt. Verwenden Sie das Cmdlet "Get-Event", um Ereignisse in der Ereigniswarteschlange abzurufen.

Sie können mit den Parametern von Register-WmiEvent Ereignisse auf Remotecomputern abonnieren und Eigenschaftenwerte für die Ereignisse angeben, mit denen Sie das Ereignis in der Warteschlange leichter identifizieren können. Außerdem können Sie mit dem Action-Parameter Aktionen angeben, die beim Auslösen eines abonnierten Ereignisses ausgelöst werden.

Wenn Sie ein Ereignis abonnieren, wird der Sitzung ein Ereignisabonnent hinzugefügt. Verwenden Sie das Cmdlet "Get-EventSubscriber", um die Ereignisabonnenten in der Sitzung abzurufen. Wenn das Abonnement abgebrochen werden soll, verwenden Sie das Cmdlet "Unregister-Event". Hierdurch wird der Ereignisabonnent aus der Sitzung gelöscht.

Parameter

-Action <scriptblock>

Gibt Befehle an, die die Ereignisse behandeln. Beim Auslösen eines Ereignisses werden die Befehle im Action-Parameter ausgeführt, statt das Ereignis an die Ereigniswarteschlange zu senden. Schließen Sie die Befehle in geschweifte Klammern ({}) ein, um einen Skriptblock zu erstellen.

Der Wert des Action-Parameters kann die automatischen Variablen "$Event", "$EventSubscriber", "$Sender", "$SourceEventArgs" und "$SourceArgs" enthalten. Diese stellen Informationen zu dem Ereignis im Action-Skriptblock bereit. Weitere Informationen finden Sie unter "about_Automatic_Variables".

Wenn Sie eine Aktion angeben, gibt Register-WmiEvent ein Ereignisauftragsobjekt zurück, das diese Aktion darstellt. Sie können Cmdlets, die das Substantiv "Job" enthalten (die Job-Cmdlets) verwenden, um den Ereignisauftrag zu verwalten.

Erforderlich?

false

Position?

102

Standardwert

Das Ereignis wird der Ereigniswarteschlange hinzugefügt.

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Class <string>

Gibt das Ereignis an, das Sie abonnieren. Geben Sie die WMI-Klasse ein, die die Ereignisse generiert. Ein Class-Parameter oder ein Query-Parameter ist in jedem Befehl erforderlich.

Erforderlich?

true

Position?

1

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ComputerName <string>

Gibt einen Remotecomputer an. Der Standardwert ist der lokale Computer. Geben Sie einen NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen ein.

Erforderlich?

false

Position?

named

Standardwert

Lokaler Computer

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Credential <PSCredential>

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01". Oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Cmdlet "Get-Credential" zurückgegebenes Objekt. Wenn Sie einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert.

Erforderlich?

false

Position?

named

Standardwert

Die Anmeldeinformationen des aktuellen Benutzers

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Forward

Sendet Ereignisse für dieses Abonnement an die Sitzung auf dem lokalen Computer. Verwenden Sie diesen Parameter, wenn Sie sich auf einem Remotecomputer oder in einer Remotesitzung für Ereignisse registrieren.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-MessageData <psobject>

Gibt alle weiteren Daten an, die diesem Ereignisabonnement zugeordnet werden sollen. Der Wert dieses Parameters wird in der MessageData-Eigenschaft aller diesem Abonnement zugeordneten Ereignisse angezeigt.

Erforderlich?

false

Position?

named

Standardwert

Keiner. Die MessageData-Eigenschaft ist NULL.

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Namespace <string>

Gibt den Namespace der WMI-Klasse an.

Erforderlich?

false

Position?

named

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Query <string>

Gibt eine Abfrage in WMI Query Language (WQL) an, die die WMI-Ereignisklasse identifiziert, z. B. "select * from __InstanceDeletionEvent".

Erforderlich?

true

Position?

1

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-SourceIdentifier <string>

Gibt einen Namen an, den Sie für das Abonnement auswählen. Der von Ihnen ausgewählte Name muss in der aktuellen Sitzung eindeutig sein. Der Standardwert ist die von Windows PowerShell zugewiesene GUID.

Der Wert dieses Parameters ist im Wert der SourceIdentifier-Eigenschaft des Abonnentenobjekts und aller diesem Abonnement zugeordneten Ereignisobjekte vorhanden.

Erforderlich?

false

Position?

101

Standardwert

GUID

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-SupportEvent

Blendet das Ereignisabonnement aus. Verwenden Sie diesen Parameter, wenn das aktuelle Abonnement Teil eines komplexeren Ereignisregistrierungsmechanismus ist und nicht unabhängig erfasst werden soll.

Um ein Abonnement anzuzeigen oder abzubrechen, das mit dem SupportEvent-Parameter erstellt wurde, verwenden Sie den Force-Parameter der Cmdlets "Get-EventSubscriber" und "Unregister-Event".

Erforderlich?

false

Position?

named

Standardwert

False

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Timeout <Int64>

Bestimmt, wie lange Windows PowerShell auf den Abschluss dieses Befehls wartet.

Der Standardwert 0 (null) bedeutet, dass es kein Timeout gibt und Windows PowerShell unbegrenzt wartet.

Erforderlich?

false

Position?

named

Standardwert

0

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

Keiner

Objekte können nicht über die Pipeline an Register-WmiEvent übergeben werden.

Ausgaben

Keiner

Dieses Cmdlet generiert keine Ausgabe.

Hinweise

Wenn Sie dieses Cmdlet in Windows Vista und höheren Versionen von Windows verwenden möchten, starten Sie Windows PowerShell mit der Option "Als Administrator ausführen".

Ereignisse, Ereignisabonnements und die Ereigniswarteschlange sind nur in der aktuellen Sitzung vorhanden. Wenn Sie die aktuelle Sitzung schließen, wird die Ereigniswarteschlange verworfen, und das Ereignisabonnement wird abgebrochen.

Beispiel 1

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted"

Beschreibung
-----------
Dieser Befehl abonniert die von der Win32_ProcessStartTrace-Klasse generierten Ereignisse. Diese Klasse löst immer dann ein Ereignis aus, wenn ein Prozess gestartet wird.





Beispiel 2

C:\PS>register-wmiEvent -query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess" -messageData "Test 01" -timeout 500

Beschreibung
-----------
In diesem Befehl werden Win32_process-Instanzerstellungsereignisse mithilfe einer Abfrage abonniert.





Beispiel 3

C:\PS>$action = { get-history | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }

C:\PS> register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" -action $action

Id    Name            State      HasMoreData   Location  Command
--    ----            -----      -----------   --------  -------
1     ProcessStarted  NotStarted False                   get-history | where {...

Beschreibung
-----------
In diesem Beispiel wird die Verwendung einer Aktion als Antwort auf ein Ereignis veranschaulicht. In diesem Fall werden beim Starten eines Prozesses alle Start-Process-Befehle in der aktuellen Sitzung in eine XML-Datei geschrieben. 

Wenn Sie den Action-Parameter verwenden, gibt Register-WmiEvent einen Hintergrundauftrag zurück, der die Ereignisaktion darstellt. Sie können die Job-Cmdlets verwenden, um den Ereignisauftrag zu verwalten, z. B. Get-Job und Receive-Job.

Weitere Informationen finden Sie unter "about_Jobs".





Beispiel 4

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01 

C:\PS> get-event -sourceIdentifier "Start"

Beschreibung
-----------
In diesem Beispiel werden Ereignisse auf dem Remotecomputer "Server01" registriert. 

WMI gibt die Ereignisse an den lokalen Computer zurück und speichert sie in der Ereigniswarteschlange in der aktuellen Sitzung. Führen Sie den lokalen Befehl "Get-Event" aus, um die Ereignisse abzurufen.





Siehe auch

Konzepte

Register-ObjectEvent
Register-EngineEvent
Unregister-Event
Get-Event
New-Event
Remove-Event
Wait-Event