mardi 15 novembre 2011

Get-EventSubscriber

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