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