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
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
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é.