about_Eventlogs

Description courte

Cet article décrit comment PowerShell journalise les événements dans le journal des événements Windows.

Description longue

Windows PowerShell crée un journal des événements Windows nommé « Windows PowerShell » pour enregistrer les événements Windows PowerShell. Vous pouvez afficher ce journal dans l’Observateur d’événements ou à l’aide d’applets de commande qui obtiennent des événements, tels que l’applet Get-EventLog de commande. Par défaut, les événements du moteur et du fournisseur Windows PowerShell sont enregistrés dans le journal des événements, mais vous pouvez utiliser les variables de préférence du journal des événements pour personnaliser le journal des événements. Par exemple, vous pouvez ajouter des événements sur les commandes Windows PowerShell.

Le journal des événements Windows PowerShell enregistre les détails des opérations Windows PowerShell, telles que le démarrage et l’arrêt du moteur de programme et le démarrage et l’arrêt des fournisseurs Windows PowerShell. Vous pouvez également enregistrer des détails sur les commandes Windows PowerShell.

Affichage du journal des événements Windows PowerShell

Vous pouvez afficher le journal des événements Windows PowerShell dans l’Observateur d’événements ou à l’aide des applets de commande et Get-WmiObject des Get-EventLog applets de commande. Pour afficher le contenu du journal Windows PowerShell, tapez :

Get-EventLog -LogName "Windows PowerShell"

Pour examiner les événements et leurs propriétés, utilisez l’applet Sort-Object de commande, l’applet Group-Object de commande et les applets de commande qui contiennent le Format verbe (applets Format de commande).

Par exemple, pour afficher les événements dans le journal regroupés par l’ID d’événement, tapez :

Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID

Ou, tapez :

Get-EventLog "Windows PowerShell" |
  Sort-Object EventID |
  Group-Object EventID

Pour afficher tous les journaux d’événements classiques, tapez :

Get-EventLog -List

Vous pouvez également utiliser l’applet Get-WmiObject de commande pour utiliser les classes WMI (Event-related Windows Management Instrumentation) pour examiner le journal des événements. Par exemple, pour afficher toutes les propriétés du fichier journal des événements, tapez :

Get-WmiObject Win32_NTEventlogFile |
  where LogFileName -EQ "Windows PowerShell" |
  Format-List -Property *

Pour rechercher les classes WMI liées à l’événement Win32, tapez :

Get-WmiObject -List | where Name -Like "win32*event*"

Pour plus d’informations, consultez Get-EventLog et Get-WmiObject.

Sélection d’événements pour le journal des événements Windows PowerShell

Vous pouvez utiliser les variables de préférence du journal des événements pour déterminer quels événements sont enregistrés dans le journal des événements Windows PowerShell.

Il existe six variables de préférence de journal des événements ; deux variables pour chacun des trois composants de journalisation : le moteur (programme Windows PowerShell), les fournisseurs et les commandes. Les variables LifeCycleEvent consignent les événements de démarrage et d’arrêt normaux. Les variables d’intégrité consignent les événements d’erreur.

Le tableau suivant répertorie les variables de préférence du journal des événements.

Variable Description
$LogEngineLifeCycleEvent Enregistre le démarrage et l’arrêt de PowerShell
$LogEngineHealthEvent Journalise les erreurs du programme PowerShell
$LogProviderLifeCycleEvent Enregistre le démarrage et l’arrêt des fournisseurs PowerShell
$LogProviderHealthEvent Journaux d’erreurs du fournisseur PowerShell
$LogCommandLifeCycleEvent Enregistre le démarrage et l’achèvement des commandes
$LogCommandHealthEvent Journaux d’erreurs de commande

(Pour plus d’informations sur les fournisseurs Windows PowerShell, consultez about_Providers.)

Par défaut, seuls les types d’événements suivants sont activés :

  • $LogEngineLifeCycleEvent
  • $LogEngineHealthEvent
  • $LogProviderLifeCycleEvent
  • $LogProviderHealthEvent

Pour activer un type d’événement, définissez la variable de préférence pour ce type $trued’événement sur . Par exemple, pour activer les événements de cycle de vie des commandes, tapez :

$LogCommandLifeCycleEvent

Ou, tapez :

$LogCommandLifeCycleEvent = $true

Pour désactiver un type d’événement, définissez la variable de préférence pour ce type $falsed’événement sur . Par exemple, pour désactiver les événements de cycle de vie des commandes, tapez :

$LogProviderLifeCycleEvent = $false

Vous pouvez désactiver n’importe quel événement, à l’exception des événements qui indiquent que le moteur Windows PowerShell et les fournisseurs principaux ont démarré. Ces événements sont générés avant l’exécution des profils Windows PowerShell et avant que le programme hôte soit prêt à accepter des commandes.

Les paramètres de variable s’appliquent uniquement à la session Windows PowerShell actuelle. Pour les appliquer à toutes les sessions Windows PowerShell, ajoutez-les à votre profil Windows PowerShell.

Journaux des événements de module

À compter de Windows PowerShell 3.0, vous pouvez enregistrer des événements d’exécution pour les applets de commande et les fonctions dans les modules Et composants logiciels enfichables Windows PowerShell en définissant la propriété LogPipelineExecutionDetails des modules et des composants logiciels enfichables $truesur . Dans Windows PowerShell 2.0, cette fonctionnalité est disponible uniquement pour les composants logiciels enfichables.

Lorsque la valeur de la propriété LogPipelineExecutionDetails est $true, Windows PowerShell écrit des événements d’exécution d’applet de commande et de fonction dans la session dans le journal Windows PowerShell dans l’Observateur d’événements. Le paramètre est effectif uniquement dans la session active.

Pour activer la journalisation des événements d’exécution des applets de commande et des fonctions dans un module, utilisez la séquence de commandes suivante.

Import-Module Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$m.LogPipelineExecutionDetails = $true

Pour activer la journalisation des événements d’exécution des applets de commande dans un composant logiciel enfichable, utilisez la séquence de commandes suivante.

$m = Get-PSSnapin Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $True

Pour désactiver la journalisation, utilisez la même séquence de commandes pour définir la valeur $falsede la propriété sur .

Vous pouvez également utiliser le paramètre Activer la stratégie de groupe de journalisation des modules pour activer et désactiver la journalisation du module et du composant logiciel enfichable. La valeur de stratégie inclut une liste de noms de module et de composant logiciel enfichable. Les caractères génériques sont pris en charge.

Lorsque l’activation de la journalisation des modules est définie pour un module, la valeur de la propriété LogPipelineExecutionDetails du module se trouve $true dans toutes les sessions et ne peut pas être modifiée.

Le paramètre de stratégie de groupe « Activer la journalisation des modules » se trouve dans les chemins d’accès de stratégie de groupe suivants :

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

La stratégie De configuration utilisateur est prioritaire sur la stratégie de configuration de l’ordinateur, et les deux stratégies prennent la préférence sur la valeur de la propriété LogPipelineExecutionDetails des modules et des composants logiciels enfichables.

Pour plus d’informations sur ce paramètre de stratégie de groupe, consultez about_Group_Policy_Paramètres.

Sécurité et audit

Le journal des événements Windows PowerShell est conçu pour indiquer l’activité et fournir des détails opérationnels pour la résolution des problèmes.

Toutefois, comme la plupart des journaux d’événements d’application Windows, le journal des événements Windows PowerShell n’est pas conçu pour être sécurisé. Il ne doit pas être utilisé pour auditer la sécurité ou enregistrer des informations confidentielles ou propriétaires.

Les journaux d’événements sont conçus pour être lus et compris par les utilisateurs. Les utilisateurs peuvent lire et écrire dans le journal. Un utilisateur malveillant peut lire un journal des événements sur un ordinateur local ou distant, enregistrer de fausses données, puis empêcher la journalisation de ses activités.

Notes

Les auteurs de modules peuvent ajouter des fonctionnalités de journalisation à leurs modules. Pour plus d’informations, consultez Écriture d’un module Windows PowerShell.

Voir aussi