Partager via


Get-EventLog

Obtient les événements dans un journal des événements, ou une liste des journaux d’événements, sur l’ordinateur local ou les ordinateurs distants.

Syntaxe

Get-EventLog
   [-LogName] <String>
   [-ComputerName <String[]>]
   [-Newest <Int32>]
   [-After <DateTime>]
   [-Before <DateTime>]
   [-UserName <String[]>]
   [[-InstanceId] <Int64[]>]
   [-Index <Int32[]>]
   [-EntryType <String[]>]
   [-Source <String[]>]
   [-Message <String>]
   [-AsBaseObject]
   [<CommonParameters>]
Get-EventLog
   [-ComputerName <String[]>]
   [-List]
   [-AsString]
   [<CommonParameters>]

Description

L’applet Get-EventLog de commande obtient les événements et les journaux d’événements des ordinateurs locaux et distants. Par défaut, Get-EventLog obtient les journaux à partir de l’ordinateur local. Pour obtenir des journaux à partir d’ordinateurs distants, utilisez le paramètre ComputerName .

Vous pouvez utiliser les paramètres et les valeurs de Get-EventLog propriété pour rechercher des événements. L’applet de commande obtient les événements qui correspondent aux valeurs de propriété spécifiées.

Les applets de commande PowerShell qui contiennent le nom fonctionnent uniquement sur les journaux d’événements Classiques Windows, tels que l’application, le EventLog système ou la sécurité. Pour obtenir des journaux qui utilisent la technologie du journal des événements Windows dans Windows Vista et les versions ultérieures de Windows, utilisez Get-WinEvent.

Remarque

Get-EventLog utilise une API Win32 déconseillée. Les résultats peuvent ne pas être exacts. Utilisez plutôt l’applet de Get-WinEvent commande.

Exemples

Exemple 1 : Obtenir les journaux des événements sur l’ordinateur local

Cet exemple montre comment afficher la liste des journaux d’événements disponibles sur l’ordinateur local. Les noms de la colonne Journal sont utilisés avec le paramètre LogName pour spécifier le journal recherché pour les événements.

Get-EventLog -List

Max(K)   Retain   OverflowAction      Entries  Log
------   ------   --------------      -------  ---
15,168        0   OverwriteAsNeeded   20,792   Application
15,168        0   OverwriteAsNeeded   12,559   System
15,360        0   OverwriteAsNeeded   11,173   Windows PowerShell

L’applet Get-EventLog de commande utilise le paramètre List pour afficher les journaux disponibles.

Exemple 2 : Obtenir des entrées récentes à partir d’un journal des événements sur l’ordinateur local

Cet exemple obtient les entrées récentes du journal des événements système.

Get-EventLog -LogName System -Newest 5

Index   Time          EntryType    Source              InstanceID   Message
-----   ----          ---------    ------              ----------   -------
13820   Jan 17 19:16  Error        DCOM                     10016   The description for Event...
13819   Jan 17 19:08  Error        DCOM                     10016   The description for Event...
13818   Jan 17 19:06  Information  Service Control...  1073748864   The start type of the Back...
13817   Jan 17 19:05  Error        DCOM                     10016   The description for Event...
13815   Jan 17 19:03  Information  Microsoft-Windows...        35   The time service is now sync...

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal des événements système. Le paramètre Le plus récent retourne les cinq événements les plus récents.

Exemple 3 : Rechercher toutes les sources pour un nombre spécifique d’entrées dans un journal des événements

Cet exemple montre comment rechercher toutes les sources incluses dans les 1 000 entrées les plus récentes dans le journal des événements système.

$Events = Get-EventLog -LogName System -Newest 1000
$Events | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Descending

Count   Name
-----   ----
  110   DCOM
   65   Service Control Manager
   51   Microsoft-Windows-Kern...
   14   EventLog
   14   BTHUSB
   13   Win32k

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre le plus récent sélectionne les 1 000 événements les plus récents. Les objets d’événement sont stockés dans la $Events variable. Les $Events objets sont envoyés au pipeline vers l’applet Group-Object de commande. Group-Object utilise le paramètre Property pour regrouper les objets par source et compter le nombre d’objets pour chaque source. Le paramètre NoElement supprime les membres du groupe de la sortie. L’applet Sort-Object de commande utilise le paramètre Property pour trier en fonction du nombre de chaque nom source. Le paramètre décroissant trie la liste dans l’ordre en fonction du nombre le plus élevé au plus bas.

Exemple 4 : Obtenir des événements d’erreur à partir d’un journal des événements spécifique

Cet exemple obtient des événements d’erreur à partir du journal des événements système.

Get-EventLog -LogName System -EntryType Error

Index Time          EntryType   Source  InstanceID Message
----- ----          ---------   ------  ---------- -------
13296 Jan 16 13:53  Error       DCOM    10016 The description for Event ID '10016' in Source...
13291 Jan 16 13:51  Error       DCOM    10016 The description for Event ID '10016' in Source...
13245 Jan 16 11:45  Error       DCOM    10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error       DCOM    10016 The description for Event ID '10016' in Source...

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre EntryType filtre les événements pour afficher uniquement les événements d’erreur.

Exemple 5 : Obtenir des événements à partir d’un journal des événements avec une valeur InstanceId et Source

Cet exemple obtient les événements du journal système pour un InstanceId et une source spécifiques.

Get-EventLog -LogName System -InstanceId 10016 -Source DCOM

Index Time          EntryType  Source  InstanceID  Message
----- ----          ---------  ------  ----------  -------
13245 Jan 16 11:45  Error      DCOM         10016  The description for Event ID '10016' in Source...
13230 Jan 16 11:07  Error      DCOM         10016  The description for Event ID '10016' in Source...
13219 Jan 16 10:00  Error      DCOM         10016  The description for Event ID '10016' in Source...

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre InstanceID sélectionne les événements avec l’ID d’instance spécifié. Le paramètre Source spécifie la propriété d’événement.

Exemple 6 : Obtenir des événements à partir de plusieurs ordinateurs

Cette commande obtient les événements du journal des événements système sur trois ordinateurs : Server01, Server02 et Server03.

Get-EventLog -LogName System -ComputerName Server01, Server02, Server03

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre ComputerName utilise une chaîne séparée par des virgules pour répertorier les ordinateurs à partir desquels vous souhaitez obtenir les journaux d’événements.

Exemple 7 : Obtenir tous les événements qui incluent un mot spécifique dans le message

Cette commande obtient tous les événements dans le journal des événements système qui contiennent un mot spécifique dans le message de l’événement. Il est possible que la valeur de votre paramètre Message spécifiée soit incluse dans le contenu du message, mais qu’elle n’est pas affichée sur la console PowerShell.

Get-EventLog -LogName System -Message *description*

Index Time          EntryType   Source       InstanceID   Message
----- ----          ---------   ------       ----------   -------
13821 Jan 17 19:17  Error       DCOM              10016   The description for Event ID '10016'...
13820 Jan 17 19:16  Error       DCOM              10016   The description for Event ID '10016'...
13819 Jan 17 19:08  Error       DCOM              10016   The description for Event ID '10016'...

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal des événements système. Le paramètre Message spécifie un mot à rechercher dans le champ de message de chaque événement.

Exemple 8 : Afficher les valeurs de propriété d’un événement

Cet exemple montre comment afficher toutes les propriétés et valeurs d’un événement.

$A = Get-EventLog -LogName System -Newest 1
$A | Select-Object -Property *

EventID            : 10016
MachineName        : localhost
Data               : {}
Index              : 13821
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : The description for Event ID '10016' in Source 'DCOM'...
Source             : DCOM
ReplacementStrings : {Local,...}
InstanceId         : 10016
TimeGenerated      : 1/17/2019 19:17:23
TimeWritten        : 1/17/2019 19:17:23
UserName           : username
Site               :
Container          :

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal des événements système. Le paramètre Le plus récent sélectionne l’objet d’événement le plus récent. L’objet est stocké dans la $A variable. L’objet de la $A variable est envoyé vers le bas du pipeline à l’applet de Select-Object commande. Select-Object utilise le paramètre Property avec un astérisque (*) pour sélectionner toutes les propriétés de l’objet.

Exemple 9 : Obtenir des événements à partir d’un journal des événements à l’aide d’une source et d’un ID d’événement

Cet exemple obtient des événements pour une source et un ID d’événement spécifiés.

Get-EventLog -LogName Application -Source Outlook | Where-Object {$_.EventID -eq 63} |
              Select-Object -Property Source, EventID, InstanceId, Message

Source   EventID   InstanceId   Message
------   -------   ----------   -------
Outlook       63   1073741887   The Exchange web service request succeeded.
Outlook       63   1073741887   Outlook detected a change notification.
Outlook       63   1073741887   The Exchange web service request succeeded.

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal des événements d’application. Le paramètre Source spécifie le nom de l’application, Outlook. Les objets sont envoyés au pipeline vers l’applet Where-Object de commande. Pour chaque objet du pipeline, l’applet Where-Object de commande utilise la variable $_.EventID pour comparer la propriété ID d’événement à la valeur spécifiée. Les objets sont envoyés au pipeline vers l’applet Select-Object de commande. Select-Object utilise le paramètre Property pour sélectionner les propriétés à afficher dans la console PowerShell.

Exemple 10 : Obtenir des événements et regrouper par une propriété

Get-EventLog -LogName System -UserName NT* | Group-Object -Property UserName -NoElement |
              Select-Object -Property Count, Name

Count  Name
-----  ----
6031   NT AUTHORITY\SYSTEM
  42   NT AUTHORITY\LOCAL SERVICE
   4   NT AUTHORITY\NETWORK SERVICE

L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre UserName inclut le caractère générique astérisque (*) pour spécifier une partie du nom d’utilisateur. Les objets d’événement sont envoyés au pipeline à l’applet Group-Object de commande. Group-Object utilise le paramètre Property pour spécifier que la propriété UserName est utilisée pour regrouper les objets et compter le nombre d’objets pour chaque nom d’utilisateur. Le paramètre NoElement supprime les membres du groupe de la sortie. Les objets sont envoyés au pipeline vers l’applet Select-Object de commande. Select-Object utilise le paramètre Property pour sélectionner les propriétés à afficher dans la console PowerShell.

Exemple 11 : Obtenir les événements qui se sont produits pendant une plage de date et d’heure spécifique

Cet exemple obtient les événements d’erreur à partir du journal des événements système pour une plage de date et d’heure spécifiée. Les paramètres Avant et Après définissent la plage de date et d’heure, mais sont exclus de la sortie.

$Begin = Get-Date -Date '1/17/2019 08:00:00'
$End = Get-Date -Date '1/17/2019 17:00:00'
Get-EventLog -LogName System -EntryType Error -After $Begin -Before $End

Index Time          EntryType   Source   InstanceID  Message
----- ----          ---------   ------   ----------  -------
13821 Jan 17 13:40  Error       DCOM          10016  The description for Event ID...
13820 Jan 17 13:11  Error       DCOM          10016  The description for Event ID...
...
12372 Jan 17 10:08  Error       DCOM          10016  The description for Event ID...
12371 Jan 17 09:04  Error       DCOM          10016  The description for Event ID...

L’applet Get-Date de commande utilise le paramètre Date pour spécifier une date et une heure. Les objets DateTime sont stockés dans les variables et $End les $Begin variables. L’applet Get-EventLog de commande utilise le paramètre LogName pour spécifier le journal système. Le paramètre EntryType spécifie le type d’événement Error. L’intervalle de date et d’heure est défini par le paramètre After et $Begin la variable After, ainsi que par le paramètre Before et $End la variable.

Paramètres

-After

Obtient les événements qui se sont produits après une date et une heure spécifiées. La date et l’heure du paramètre After sont exclues de la sortie. Entrez un objet DateTime , tel que la valeur retournée par l’applet de Get-Date commande.

Type:DateTime
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AsBaseObject

Indique que cette applet de commande retourne un objet System.Diagnostics.EventLogEntry standard pour chaque événement. Sans ce paramètre, Get-EventLog retourne un objet PSObject étendu avec des propriétés EventLogName, Source et InstanceId supplémentaires.

Pour afficher l’effet de ce paramètre, dirigez les événements vers l’applet Get-Member de commande et examinez la valeur TypeName dans le résultat.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AsString

Indique que cette applet de commande retourne la sortie sous forme de chaînes, au lieu d’objets.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Before

Obtient les événements qui se sont produits avant une date et une heure spécifiées. La date et l’heure du paramètre Before sont exclues de la sortie. Entrez un objet DateTime , tel que la valeur retournée par l’applet de Get-Date commande.

Type:DateTime
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ComputerName

Ce paramètre spécifie le nom NetBIOS d’un ordinateur distant, l’adresse IP (Internet Protocol) ou un nom de domaine complet (FQDN).

Si le paramètre ComputerName n’est pas spécifié, Get-EventLog la valeur par défaut est l’ordinateur local. Le paramètre accepte également un point (.) pour spécifier l’ordinateur local.

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

Type:String[]
Alias:Cn
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EntryType

Spécifie, en tant que tableau de chaînes, le type d’entrée des événements que cette applet de commande obtient.

Les valeurs valides pour ce paramètre sont :

  • Error
  • Information
  • FailureAudit
  • SuccessAudit
  • Avertissement
Type:String[]
Alias:ET
Valeurs acceptées:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Index

Spécifie les valeurs d’index à obtenir à partir du journal des événements. Le paramètre accepte une chaîne séparée par des virgules de valeurs.

Type:Int32[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InstanceId

Spécifie les ID d’instance à obtenir à partir du journal des événements. Le paramètre accepte une chaîne séparée par des virgules de valeurs.

Type:Int64[]
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-List

Affiche la liste des journaux d’événements sur l’ordinateur.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-LogName

Spécifie le nom d’un journal des événements. Pour rechercher les noms de journal, utilisez Get-EventLog -List. Les caractères génériques sont autorisés. Ce paramètre est obligatoire.

Type:String
Alias:LN
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-Message

Spécifie une chaîne dans le message d’événement. Vous pouvez utiliser ce paramètre pour rechercher des messages qui contiennent certains mots ou expressions. Les caractères génériques sont autorisés.

Type:String
Alias:MSG
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-Newest

Commence par les événements les plus récents et obtient le nombre spécifié d’événements. Le nombre d’événements est requis, par exemple -Newest 100. Spécifie le nombre maximal d’événements retournés.

Type:Int32
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Source

Spécifie, sous la forme d’un tableau de chaînes, des sources écrites dans le journal que cette applet de commande obtient. Les caractères génériques sont autorisés.

Type:String[]
Alias:ABO
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-UserName

Spécifie, en tant que tableau de chaînes, les noms d’utilisateur associés aux événements. Entrez des noms ou des modèles de noms, tels que User01, User*ou Domain01\User*. Les caractères génériques sont autorisés.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

Entrées

None

Vous ne pouvez pas diriger l’entrée vers Get-EventLog.

Sorties

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

Si le paramètre LogName est spécifié, la sortie est une collection d’objets System.Diagnostics.EventLogEntry .

Si seul le paramètre List est spécifié, la sortie est une collection d’objets System.Diagnostics.EventLog .

Si les paramètres List et AsString sont spécifiés, la sortie est une collection d’objets System.String .

Notes

Les applets Get-EventLog de commande et Get-WinEvent ne sont pas prises en charge dans l’environnement de préinstallation Windows (Windows PE).