Partager via


Register-WmiEvent

S’abonne à un événement WMI (Windows Management Instrumentation).

Syntaxe

class (Par défaut)

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>]

Description

L’applet Register-WmiEvent de commande s’abonne aux événements WMI (Windows Management Instrumentation) sur l’ordinateur local ou sur un ordinateur distant.

Lorsque l’événement WMI abonné est déclenché, il est ajouté à la file d’attente d’événements dans votre session locale, même si l’événement se produit sur un ordinateur distant. Pour obtenir des événements dans la file d’attente d’événements, utilisez l’applet de commande Get-Event.

Vous pouvez utiliser les paramètres de Register-WmiEvent pour vous abonner à des événements sur des ordinateurs distants et spécifier les valeurs de propriété des événements qui peuvent vous aider à identifier l’événement dans la file d’attente. Vous pouvez également utiliser le paramètre Action pour spécifier les actions à entreprendre lorsqu’un événement abonné est déclenché.

Lorsque vous vous abonnez à un événement, un abonné à un événement est ajouté à votre session. Pour obtenir les abonnés à l’événement dans la session, utilisez le cmdlet Get-EventSubscriber. Pour annuler l’abonnement, utilisez l’applet de commande Unregister-Event, qui supprime l’abonné à l’événement de la session.

Les nouvelles applets de commande CIM (Common Information Model), introduites par Windows PowerShell 3.0, effectuent les mêmes tâches que les applets de commande WMI. Les applets de commande CIM sont conformes aux normes WS-Management (WSMan) et à la norme CIM, ce qui permet aux applets de commande d’utiliser les mêmes techniques pour gérer les ordinateurs qui exécutent le système d’exploitation Windows et ceux qui exécutent d’autres systèmes d’exploitation. Au lieu d’utiliser , envisagez d’utiliser l’applet de commande Register-CimIndicationEvent .

Exemples

Exemple 1 : S’abonner aux événements générés par une classe

Cette commande s’abonne aux événements générés par la classe Win32_ProcessStartTrace. Cette classe déclenche un événement chaque fois qu’un processus démarre.

Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"

Exemple 2 : S’abonner aux événements de création pour un processus

Cette commande utilise une requête pour s’abonner à Win32_process événements de création d’instance.

$wmiParameters = @{
  Query = "select * from __instancecreationevent within 5 where targetinstance isa 'Win32_Process'"
  SourceIdentifier = "WMIProcess"
  MessageData = "Test 01"
  TimeOut = 500
}
Register-WmiEvent @wmiParameters

Exemple 3 : Utiliser une action pour répondre à un événement

Cet exemple montre comment utiliser une action pour répondre à un événement. Dans ce cas, lorsqu’un processus démarre, toutes les Start-Process commandes de la session active sont écrites dans un fichier XML.

$action = {
    Get-History |
    Where-Object { $_.CommandLine -like "*Start-Process*" } |
    Export-CliXml "commandHistory.clixml"
}
Register-WmiEvent -Class Win32_ProcessStartTrace -SourceIdentifier ProcessStarted -Action $action
Id    Name            State      HasMoreData   Location  Command
--    ----            -----      -----------   --------  -------
1     ProcessStarted  NotStarted False                   Get-History | where {...

Lorsque vous utilisez le paramètre Action , Register-WmiEvent retourne un travail en arrière-plan qui représente l’action d’événement. Vous pouvez utiliser les applets de commande Job , telles que Get-Job et Receive-Job, pour gérer le travail d’événement.

Pour plus d’informations, consultez à propos des_tâches.

Exemple 4 : Inscrire des événements sur un ordinateur distant

Cet exemple s’inscrit pour les événements sur l’ordinateur distant Server01.

Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -ComputerName Server01
Get-Event -SourceIdentifier "Start"

WMI retourne les événements sur l’ordinateur local et les stocke dans la file d’attente des événements dans la session active. Pour récupérer les événements, exécutez une commande locale Get-Event .

Paramètres

-Action

Spécifie les commandes qui gèrent les événements. Les commandes dans l’action paramètre s’exécutent lorsqu’un événement est déclenché au lieu d’envoyer l’événement à la file d’attente d’événements. Mettez les commandes entre accolades ({}) pour créer un bloc de script.

La valeur d’Action peut inclure les $Eventvariables automatiques , , $EventSubscriber$EventArgs$Senderet $args les variables automatiques, qui fournissent des informations sur l’événement au bloc de script Action. Pour plus d’informations, consultez à propos des variables automatiques.

Lorsque vous spécifiez une action, Register-WmiEvent retourne un objet de travail d’événement qui représente cette action. Vous pouvez utiliser les applets de commande qui contiennent le nom Job (les applets de commande Job) pour gérer le travail d’événement.

Propriétés du paramètre

Type:ScriptBlock
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:101
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Class

Spécifie l’événement auquel vous vous abonnez. Entrez la classe WMI qui génère les événements. Un paramètre de de requête ou de de classe est requis dans chaque commande.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

class
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-ComputerName

Spécifie le nom de l’ordinateur sur lequel la commande s’exécute. La valeur par défaut est l’ordinateur local.

Tapez le nom NetBIOS, une adresse IP ou un nom de domaine complet de l’ordinateur. Pour spécifier l’ordinateur local, tapez le nom de l’ordinateur, un point (.) ou localhost.

Ce paramètre ne s’appuie pas sur la communication à distance Windows PowerShell. Vous pouvez utiliser le paramètre ComputerName même si votre ordinateur n’est pas configuré pour exécuter des commandes distantes.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:Cn

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Credential

Spécifie un compte d’utilisateur autorisé à effectuer cette action. La valeur par défaut est l’utilisateur actuel.

Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential, tel qu’un objet généré par l’applet de commande Get-Credential. Si vous tapez un nom d’utilisateur, cette applet de commande vous invite à entrer un mot de passe.

Propriétés du paramètre

Type:PSCredential
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Forward

Indique que cette applet de commande envoie des événements pour cet abonnement à la session sur l’ordinateur local. Utilisez ce paramètre lorsque vous inscrivez des événements sur un ordinateur distant ou dans une session à distance.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-MaxTriggerCount

Spécifie le nombre maximal de déclencheurs.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-MessageData

Spécifie toutes les données supplémentaires à associer à cet abonnement d’événements. La valeur de ce paramètre apparaît dans la propriété MessageData de tous les événements associés à cet abonnement.

Propriétés du paramètre

Type:PSObject
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Namespace

Spécifie l’espace de noms de la classe WMI.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:NS

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Query

Spécifie une requête dans WMI Query Language (WQL) qui identifie la classe d’événements WMI, telle que : select * from __InstanceDeletionEvent.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

query
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-SourceIdentifier

Spécifie un nom que vous sélectionnez pour l’abonnement. Le nom que vous sélectionnez doit être unique dans la session active. La valeur par défaut est le GUID que Windows PowerShell affecte.

La valeur de ce paramètre apparaît dans la valeur de la propriété SourceIdentifier de l’objet abonné et de tous les objets d’événement associés à cet abonnement.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:100
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-SupportEvent

Indique que cette applet de commande masque l’abonnement aux événements. Utilisez ce paramètre lorsque l’abonnement actuel fait partie d’un mécanisme d’inscription d’événements plus complexe et qu’il ne doit pas être découvert indépendamment.

Pour afficher ou annuler un abonnement créé à l’aide du paramètre SupportEvent, spécifiez le paramètre Force des applets de commande et Unregister-Event des Get-EventSubscriber applets de commande.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Timeout

Spécifie la durée pendant laquelle Windows PowerShell attend la fin de cette commande.

La valeur par défaut, 0 (zéro), signifie qu’il n’y a pas de délai d’attente et que Windows PowerShell attend indéfiniment.

Propriétés du paramètre

Type:Int64
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:TimeoutMSec

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

None

Cette applet de commande ne génère aucune sortie.

Notes

Pour utiliser cette applet de commande dans Windows Vista ou une version ultérieure du système d’exploitation Windows, démarrez Windows PowerShell à l’aide de l’option Exécuter en tant qu’administrateur.

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 d’événements est ignorée et l’abonnement à l’événement est annulé.