Ruft die Ereignisabonnenten in der aktuellen Sitzung ab. (Get-EventSubscriber)
NAMEGet-EventSubscriberÜBERSICHTRuft die Ereignisabonnenten in der aktuellen Sitzung ab.SYNTAXGet-EventSubscriber [-SubscriptionId] <int> [[-Force]] [<CommonParameters>] Get-EventSubscriber [[-SourceIdentifier] <string>] [[-Force]] [<CommonParameters>]BESCHREIBUNGMit dem Cmdlet "Get-EventSubscriber" werden die Ereignisabonnenten in der aktuellen Sitzung abgerufen. Wenn Sie ein Ereignis mit dem Cmdlet "Register-Event" abonnieren, wird der Windows PowerShell-Sitzung ein Ereignisabonnent hinzugefügt, und die abonnierten Ereignisse werden der Ereigniswarteschlange hinzugefügt, sobald sie ausgelöst werden. Um ein Ereignisabonnement zu stornieren, löschen Sie den Ereignisabonnenten mit dem Cmdlet "Unregister-Event".PARAMETER-Force [<SwitchParameter>] Ruft alle Ereignisabonnenten, einschließlich Abonnenten für versteckte Ereignisse, mit dem SupportEvent-Parameter von Register-ObjectEvent, Register-WmiEvent und Register-EngineEvent ab. Erforderlich? false Position? 2 Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -SourceIdentifier <string> Ruft nur die Ereignisabonnenten mit dem angegebenen SourceIdentifier-Eigenschaftenwert ab. Standardmäßig werden mit Get-EventSubscriber alle Ereignisabonnenten in der Sitzung abgerufen. Platzhalter sind nicht zulässig. Bei diesem Parameter wird die Groß-/Kleinschreibung berücksichtigt. Erforderlich? false Position? 1 Standardwert Alle Ereignisabonnenten Pipelineeingaben akzeptieren?true (ByPropertyName) Platzhalterzeichen akzeptieren?false -SubscriptionId <int> Ruft nur den angegebenen Abonnementbezeichner ab. Standardmäßig werden mit Get-EventSubscriber alle Ereignisabonnenten in der Sitzung abgerufen. Erforderlich? true Position? 1 Standardwert Keiner Pipelineeingaben akzeptieren?true (ByPropertyName) 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 Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.AUSGABENSystem.Management.Automation.PSEventSubscriber Get-EventSubscriber gibt ein Objekt zurück, das die einzelnen Ereignisabonnenten darstellt.HINWEISEDas Cmdlet "New-Event", das ein benutzerdefiniertes Ereignis erstellt, generiert keinen Abonnenten. Deshalb sucht das Cmdlet "Get-EventSubscriber" kein Abonnentenobjekt für diese Ereignisse. Wenn Sie jedoch ein benutzerdefiniertes Ereignis mit dem Cmdlet "Register-EngineEvent" abonnieren (um das Ereignis weiterzuleiten oder eine Aktion anzugeben), wird mit Get-EventSubscriber der Abonnent gesucht, der von Register-EngineEvent generiert wird. 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>$timer = New-Object Timers.Timer C:\PS> $timer | Get-Member -Type Event C:\PS> Register-ObjectEvent -inputObject $timer -EventName Elapsed -SourceIdentifier Timer.Elapsed C:\PS> Get-EventSubscriber C:\PS> $timer = New-Object Timers.Timer C:\PS> $timer | Get-Member -Type Event TypeName: System.Timers.Timer Name MemberType Definition ---- ---------- ---------- Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs) Elapsed Event System.Timers.ElapsedEventHandler Elapsed(System.Object, System.Timers.ElapsedEventArgs) C:\PS> Register-ObjectEvent -InputObject $timer -EventName Elapsed -SourceIdentifier Timer.Elapsed C:\PS> Get-EventSubscriber SubscriptionId : 4 SourceObject : System.Timers.Timer EventName : Elapsed SourceIdentifier : Timer.Elapsed Action : HandlerDelegate : SupportEvent : False ForwardEvent : False Beschreibung ----------- In diesem Beispiel wird der Befehl "Get-EventSubscriber" verwendet, um den Ereignisabonnenten für ein Zeitgeberereignis abzurufen. Im ersten Befehl wird das Cmdlet "New-Object" verwendet, um eine Instanz eines Zeitgeberobjekts zu erstellen. Das neue Zeitgeberobjekt wird in der Variablen "$timer" gespeichert. Im zweiten Befehl wird das Cmdlet "Get-Member" verwendet, um die Ereignisse anzuzeigen, die für Zeitgeberobjekte verfügbar sind. Der Befehl verwendet den Type-Parameter des Cmdlets "Get-Member" mit dem Wert "Event". Im dritten Befehl wird das Cmdlet "Register-ObjectEvent" verwendet, um das Elapsed-Ereignis des Zeitgeberobjekts zu registrieren. Im vierten Befehl wird mit dem Cmdlet "Get-EventSubscriber" der Ereignisabonnent für das Elapsed-Ereignis abgerufen.BEISPIEL 2C:\PS>$timer = New-Object Timers.Timer C:\PS> $timer.Interval = 500 C:\PS> Register-ObjectEvent -inputObject $timer -eventName Elapsed -sourceIdentifier Timer.Random -Action { $random = Get-Random -Min 0 -Max 100 } Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 3 Timer.Random NotStarted False $random = Get-Random ... C:\PS> $timer.Enabled = $true C:\PS> $subscriber = Get-EventSubcriber -sourceIdentifer Timer.Random C:\PS> ($subscriber.action).gettype().fullname PSEventJob C:\PS> $subscriber.action | format-list -property * State : Running Module : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0 StatusMessage : HasMoreData : True Location : Command : $random = Get-Random -Min 0 -Max 100 JobStateInfo : Running Finished : System.Threading.ManualResetEvent InstanceId : 88944290-133d-4b44-8752-f901bd8012e2 Id : 1 Name : Timer.Random ChildJobs : {} ... C:\PS> & $subscriber.action.module {$random} 96 C:\PS> & $subscriber.action.module {$random} 23 Beschreibung ----------- In diesem Beispiel wird gezeigt, wie das dynamische Modul im PSEventJob-Objekt in der Action-Eigenschaft des Ereignisabonnenten verwendet wird. Der erste Befehl erstellt mit dem Cmdlet "New-Object" ein Zeitgeberobjekt. Mit dem zweiten Befehl wird das Intervall des Zeitgebers auf 500 (Millisekunden) festgelegt. Mit dem dritten Befehl wird das Cmdlet "Register-ObjectEvent" verwendet, um das Elapsed-Ereignis des Zeitgeberobjekts zu registrieren. Der Befehl schließt eine Aktion ein, die das Ereignis behandelt. Jedes Mal, wenn das Zeitgeberintervall abläuft, wird ein Ereignis ausgelöst und die Befehle in der Aktion ausgeführt. In diesem Fall generiert das Cmdlet "Get-Random" eine Zufallszahl zwischen 0 und 100 und speichert sie in der Variablen "$random". Der Quellbezeichner des Ereignisses lautet "Timer.Random". Wenn Sie in einem Register-ObjectEvent-Befehl einen Action-Parameter verwenden, gibt der Befehl ein PSEventJob-Objekt zurück, das die Aktion darstellt. Mit dem vierten Befehl wird der Zeitgeber aktiviert. Mit dem fünften Befehl wird das Cmdlet "Get-EventSubscriber" verwendet, um den Ereignisabonnenten des Timer.Random-Ereignisses abzurufen. Das Ereignisabonnentenobjekt wird in der Variablen "$subscriber" gespeichert. Der sechste Befehl zeigt, dass die Action-Eigenschaft des Ereignisabonnentenobjekts ein PSEventJob-Objekt enthält. Hierbei handelt es sich tatsächlich um das gleiche PSEventJob-Objekt, das vom Befehl "Register-ObjectEvent" zurückgegeben wurde. Mit dem siebten Befehl wird das Cmdlet "Format-List" verwendet, um alle Eigenschaften des PSEventJob-Objekts in der Action-Eigenschaft in einer Liste anzuzeigen. Das Ergebnis veranschaulicht, dass das PSEventJob-Objekt über eine Module-Eigenschaft verfügt, die ein dynamisches Skriptmodul enthält, das die Aktion implementiert. In den verbleibenden Befehlen wird der Aufrufoperator (&) verwendet, um den Befehl im Modul aufzurufen und den Wert der Variablen "$random" anzuzeigen. Sie können den Aufrufoperator verwenden, um einen beliebigen Befehl im Modul aufzurufen, einschließlich nicht exportierter Befehle. In diesem Fall zeigen die Befehle die Zufallsnummer an, die bei Auftreten des Elapsed-Ereignisses generiert wird. Weitere Informationen zu Modulen finden Sie unter "about_Modules". VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=135155 (möglicherweise auf Englisch) Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event C:\Windows>powershell get-help Unregister-Event -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export