NOM
Get-EventSubscriber
RÉSUMÉ
Obtient tous les abonnés aux événements de la session active.
SYNTAXE
Get-EventSubscriber [-SubscriptionId] <int> [[-Force]] [<CommonParameters>]
Get-EventSubscriber [[-SourceIdentifier] <string>] [[-Force]] [<CommonParameters>]
DESCRIPTION
L'applet de commande Get-EventSubscriber obtient les abonnés aux événements de la session active.
Lorsque vous vous abonnez à un événement à l'aide d'une applet de commande d'événement Register, un abonné est ajouté à votre session Windows PowerShell, et les événements auxquels vous êtes abonné sont ajoutés à votre file d'attente d'événements chaque fois qu'ils sont déclenchés. Pour annuler un abonnement aux événements, supprimez l'abonné à l'aide de l'applet de commande Unregister-Event.
PARAMÈTRES
-Force [<SwitchParameter>]
Obtient tous les abonnés aux événements, notamment les abonnés aux événements cachés à l'aide du paramètre SupportEvent de Register-ObjectEvent, Register-WmiEvent et Register-EngineEvent.
Obligatoire ? false
Position ? 2
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? false
-SourceIdentifier <string>
Obtient uniquement les abonnés aux événements possédant la valeur de propriété SourceIdentifier spécifiée. Par défaut, Get-EventSubscriber obtient tous les abonnés aux événements de la session. Les caractères génériques ne sont pas autorisés. Ce paramètre respecte la casse.
Obligatoire ? false
Position ? 1
Valeur par défaut Tous les abonnés aux événements
Accepter l'entrée de pipeline ? true (ByPropertyName)
Accepter les caractères génériques ? false
-SubscriptionId <int>
Obtient uniquement l'identificateur d'abonnement spécifié. Par défaut, Get-EventSubscriber obtient tous les abonnés aux événements de la session.
Obligatoire ? true
Position ? 1
Valeur par défaut Aucun
Accepter l'entrée de pipeline ? true (ByPropertyName)
Accepter les caractères génériques ? false
<CommonParameters>
Cette applet de commande prend en charge les paramètres courants : Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer et OutVariable. Pour plus d'informations, tapez
« get-help about_commonparameters ».
ENTRÉES
Aucun
Vous ne pouvez pas diriger d'entrée vers cette applet de commande.
SORTIES
System.Management.Automation.PSEventSubscriber
Get-EventSubscriber retourne un objet représentant chaque abonné.
NOTES
L'applet de commande New-Event, qui crée un événement personnalisé, ne génère pas d'abonné. Par conséquent, l'applet de commande Get-EventSubscriber ne trouvera pas d'objet abonné pour ces événements. Toutefois, si vous utilisez l'applet de commande Register-EngineEvent pour vous abonner à un événement personnalisé (pour transférer l'événement ou spécifier une action), Get-EventSubscriber recherchera l'abonné généré par Register-EngineEvent
.
Les événements, les abonnements aux événements et la file d'attente d'événements existent uniquement dans la session active. Si vous fermez la session active, la file d'attente des événements est ignorée et l'abonnement aux événements est annulé.
-------------------------- EXEMPLE 1 --------------------------
C:\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
Description
-----------
Cet exemple utilise une commande Get-EventSubscriber pour obtenir l'abonné à un événement de minuteur.
La première commande utilise l'applet de commande New-Object pour créer une instance d'un objet minuteur. Elle enregistre le nouvel objet minuteur dans la variable $timer.
La deuxième commande utilise l'applet de commande Get-Member pour afficher les événements disponibles pour les objets minuteur. Elle utilise le paramètre Type de l'applet de commande Get-Member avec la valeur Event.
La troisième commande utilise l'applet de commande Register-ObjectEvent pour inscrire l'événement Elapsed sur l'objet minuteur.
La commande quatrième utilise l'applet de commande Get-EventSubscriber pour obtenir l'abonné à l'événement Elapsed.
-------------------------- EXEMPLE 2 --------------------------
C:\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
Description
-----------
Cet exemple montre comment utiliser le module dynamique de l'objet PSEventJob de la propriété Action de l'abonné.
La première commande utilise l'applet de commande New-Object pour créer un objet minuteur (Timer). La deuxième commande définit l'intervalle du minuteur à 500 (millisecondes).
La troisième commande utilise l'applet de commande Register-ObjectEvent pour inscrire l'événement Elapsed de l'objet minuteur. Elle inclut une action qui gère l'événement. Chaque fois que l'intervalle du minuteur s'écoule, un événement est déclenché et les commandes spécifiées dans Action s'exécutent. Dans ce cas, l'applet de commande Get-Random génère un nombre aléatoire compris entre 0 et 100, et l'enregistre dans la variable $random. L'identificateur source de l'événement est Timer.Random.
Lorsque vous utilisez un paramètre Action dans une commande Register-ObjectEvent, la commande retourne un objet PSEventJob qui représente l'action.
La quatrième commande active le minuteur.
La cinquième commande utilise l'applet de commande Get-EventSubscriber pour obtenir l'abonné à l'événement Timer.Random. Elle enregistre l'objet abonné dans la variable $subscriber.
La sixième commande indique que la propriété Action de l'objet abonné contient un objet PSEventJob. En fait, il contient le même objet PSEventJob que celui retourné par la commande Register-ObjectEvent.
La septième commande utilise l'applet de commande Format-List pour afficher toutes les propriétés de l'objet PSEventJob de la propriété Action dans une liste. Le résultat révèle que l'objet PSEventJob a une propriété Module contenant un module de script dynamique qui implémente l'action.
Les commandes restantes utilisent l'opérateur d'appel (&) pour appeler la commande dans le module et afficher la valeur de la variable $random. Vous pouvez utiliser l'opérateur d'appel pour appeler toute commande dans un module, notamment les commandes qui ne sont pas exportées. Dans ce cas, les commandes indiquent le nombre aléatoire généré lorsque l'événement Elapsed se produit.
Pour plus d'informations sur les modules, consultez about_Modules.
LIENS CONNEXES
Online version: http://go.microsoft.com/fwlink/?LinkID=135155
Register-ObjectEvent
Register-EngineEvent
Register-WmiEvent
Unregister-Event
Get-Event
New-Event
Remove-Event
Wait-Event
Aucun commentaire:
Enregistrer un commentaire