Abonniert ein WMI-Ereignis (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation). (Register-WmiEvent)
NAMERegister-WmiEventÜBERSICHTAbonniert ein WMI-Ereignis (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation).SYNTAXRegister-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>]BESCHREIBUNGDas 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 [<SwitchParameter>] 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 [<SwitchParameter>] 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 folgende allgemeine Parameter: "Verbose", "Debug", "ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable", "OutBuffer" und "OutVariable". Weitere Informationen erhalten Sie mit dem Befehl "get-help about_commonparameters".EINGABENKeiner Objekte können nicht über die Pipeline an Register-WmiEvent übergeben werden.AUSGABENKeiner Dieses Cmdlet generiert keine Ausgabe.HINWEISEWenn 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.Beispiele
BEISPIEL 1C:\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 2C:\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 3C:\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 4C:\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. VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=135245 (möglicherweise auf Englisch) Register-ObjectEvent Register-EngineEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event C:\Windows>powershell get-help Resolve-Path -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export