Register-WmiEvent
Abonniert ein WMI-Ereignis (Windows Management Instrumentation).
Syntax
class (Standard)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Register-WmiEvent abonniert WMI-Ereignisse (Windows Management Instrumentation) auf dem lokalen Computer oder auf einem Remotecomputer.
Wenn das abonnierte WMI-Ereignis ausgelöst wird, wird es der Ereigniswarteschlange in Ihrer lokalen Sitzung hinzugefügt, auch wenn das Ereignis auf einem Remotecomputer auftritt. Verwenden Sie das Cmdlet Get-Event, um Ereignisse in der Ereigniswarteschlange abzurufen.
Sie können die Parameter von Register-WmiEvent verwenden, um Ereignisse auf Remotecomputern zu abonnieren und die Eigenschaftswerte der Ereignisse anzugeben, mit denen Sie das Ereignis in der Warteschlange identifizieren können.
Sie können auch den Parameter Action verwenden, um Aktionen anzugeben, die ausgeführt werden sollen, wenn ein abonniertes Ereignis ausgelöst wird.
Wenn Sie ein Ereignis abonnieren, wird der Sitzung ein Ereignisabonnent hinzugefügt. Um die Ereignisabonnenten in der Sitzung abzurufen, verwenden Sie das cmdlet Get-EventSubscriber. Verwenden Sie zum Kündigen des Abonnements das Cmdlet Unregister-Event, das den Ereignisabonnent aus der Sitzung löscht.
Neue Common Information Model (CIM)-Cmdlets, die Windows PowerShell 3.0 eingeführt haben, führen dieselben Aufgaben wie die WMI-Cmdlets aus.
Die CIM-Cmdlets entsprechen WS-Management (WSMan)-Standards und dem CIM-Standard, wodurch die Cmdlets dieselben Techniken verwenden können, um Computer zu verwalten, die das Windows-Betriebssystem ausführen, und diejenigen, die andere Betriebssysteme ausführen.
Anstatt Register-WmiEventzu verwenden, sollten Sie das Cmdlet Register-CimIndicationEvent verwenden.
Beispiele
Beispiel 1: Abonnieren von Ereignissen, die von einer Klasse generiert werden
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Dieser Befehl abonniert die von der Win32_ProcessStartTrace Klasse generierten Ereignisse. Diese Klasse löst ein Ereignis aus, wenn ein Prozess gestartet wird.
Beispiel 2: Abonnieren von Erstellungsereignissen für einen Prozess
PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500
Dieser Befehl verwendet eine Abfrage, um Win32_process Instanzerstellungsereignisse zu abonnieren.
Beispiel 3: Verwenden einer Aktion zum Reagieren auf ein Ereignis
PS C:\> $action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
In diesem Beispiel wird gezeigt, wie Sie eine Aktion verwenden, um auf ein Ereignis zu reagieren. In diesem Fall werden beim Starten eines Prozesses alle Start-Process Befehle in der aktuellen Sitzung in eine XML-Datei geschrieben.
Wenn Sie denAction-Parameter verwenden, gibt Register-WmiEvent einen Hintergrundauftrag zurück, der die Ereignisaktion darstellt. Sie können die Job-Cmdlets verwenden, z. B. Get-Job und Receive-Job, um den Ereignisauftrag zu verwalten.
Weitere Informationen finden Sie unter about_Jobs.
Beispiel 4: Registrieren für Ereignisse auf einem Remotecomputer
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"
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 zum Abrufen der Ereignisse einen lokalen Get-Event-Befehl aus.
Parameter
-Action
Gibt Befehle an, die die Ereignisse behandeln. Die Befehle im Action-Parameter werden ausgeführt, wenn ein Ereignis ausgelöst wird, anstatt das Ereignis an die Ereigniswarteschlange zu senden. Schließen Sie die Befehle in geschweifte Klammern ( { } ) ein, um einen Skriptblock zu erstellen.
Der Wert von Action kann die Variablen $Event, $EventSubscriber, $Sender, $EventArgs und $Args automatic enthalten, die Informationen über das Ereignis für den Action-Skriptblock bereitstellen. 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 die Cmdlets verwenden, die das Auftrag Substantiv (das Job Cmdlets) enthalten, um den Ereignisauftrag zu verwalten.
Parametereigenschaften
| Typ: | ScriptBlock |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 101 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Class
Gibt das Ereignis an, für das Sie abonnieren. Geben Sie die WMI-Klasse ein, die die Ereignisse generiert. Ein Class oder Query Parameter ist in jedem Befehl erforderlich.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
class
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ComputerName
Gibt den Namen des Computers an, auf dem der Befehl ausgeführt wird. Der Standardwert ist der lokale Computer.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen des Computers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.
Dieser Parameter basiert nicht auf Windows PowerShell-Remoting. Sie können den parameter ComputerName verwenden, auch wenn Ihr Computer nicht für die Ausführung von Remotebefehlen konfiguriert ist.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Cn |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Credential
Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Die Standardeinstellung ist der aktuelle Benutzer.
Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein PSCredential--Objekt ein, z. B. ein Objekt, das vom Cmdlet Get-Credential generiert wird. Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet aufgefordert, ein Kennwort einzugeben.
Parametereigenschaften
| Typ: | PSCredential |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Forward
Gibt an, dass dieses Cmdlet Ereignisse für dieses Abonnement an die Sitzung auf dem lokalen Computer sendet. Verwenden Sie diesen Parameter, wenn Sie sich für Ereignisse auf einem Remotecomputer oder in einer Remotesitzung registrieren.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-MaxTriggerCount
Gibt die maximale Auslöseranzahl an.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-MessageData
Gibt alle zusätzlichen Daten an, die diesem Ereignisabonnement zugeordnet werden sollen. Der Wert dieses Parameters wird in der MessageData-Eigenschaft aller Ereignisse angezeigt, die diesem Abonnement zugeordnet sind.
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Namespace
Gibt den Namespace der WMI-Klasse an.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | NS |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Query
Gibt eine Abfrage in der WMI-Abfragesprache (WQL) an, die die WMI-Ereignisklasse identifiziert, z. B.: select * from __InstanceDeletionEvent.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
query
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SourceIdentifier
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 GUID, die Windows PowerShell zuweist.
Der Wert dieses Parameters ist im Wert der SourceIdentifier-Eigenschaft des Abonnentenobjekts und aller diesem Abonnement zugeordneten Ereignisobjekte vorhanden.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 100 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SupportEvent
Gibt an, dass dieses Cmdlet das Ereignisabonnement ausblendet. Verwenden Sie diesen Parameter, wenn das aktuelle Abonnement Teil eines komplexeren Ereignisregistrierungsmechanismus ist und nicht unabhängig ermittelt werden sollte.
Um ein Abonnement anzuzeigen oder zu kündigen, das mithilfe des Parameters SupportEvent erstellt wurde, geben Sie den Force-Parameter der Cmdlets Get-EventSubscriber und Unregister-Event an.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Timeout
Gibt an, wie lange Windows PowerShell auf den Abschluss dieses Befehls wartet.
Der Standardwert 0 (Null) bedeutet, dass kein Timeout vorhanden ist, und windows PowerShell wird auf unbestimmte Zeit gewartet.
Parametereigenschaften
| Typ: | Int64 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | TimeoutMSec |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Objekte können nicht an dieses Cmdlet weitergeleitet werden.
Ausgaben
None
Dieses Cmdlet generiert keine Ausgabe.
Hinweise
Um dieses Cmdlet in Windows Vista oder einer höheren Version des Windows-Betriebssystems zu verwenden, starten Sie Windows PowerShell mithilfe der Option "Als Administrator ausführen".
Ereignisse, Ereignisabonnements und die Ereigniswarteschlange sind nur in der aktuellen Sitzung verfügbar. Wenn Sie die aktuelle Sitzung schließen, wird die Ereigniswarteschlange verworfen, und das Ereignisabonnement wird abgebrochen.