Get-WinEvent
Obtient les événements à partir des journaux des événements et des fichiers journaux de suivi d'événements sur les ordinateurs locaux et distants.
Syntaxe
Get-WinEvent
[[-LogName] <String[]>]
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-ListLog] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[<CommonParameters>]
Get-WinEvent
[-ListProvider] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
Get-WinEvent
[-ProviderName] <String[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <String[]>
[-MaxEvents <Int64>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterHashtable] <Hashtable[]>
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXml] <XmlDocument>
[-Oldest]
[<CommonParameters>]
Description
L’applet Get-WinEvent
de commande obtient des événements à partir des journaux d’événements, y compris les journaux classiques, tels que les journaux système et application . L’applet de commande obtient les données des journaux d’événements générés par la technologie journal des événements Windows introduite dans Windows Vista et les événements dans les fichiers journaux générés par le suivi des événements pour Windows (ETW). Par défaut, Get-WinEvent
retourne les informations d’événement dans l’ordre du plus récent au plus ancien.
Get-WinEvent
répertorie les journaux d’événements et les fournisseurs de journaux d’événements. Pour interrompre la commande, appuyez sur Ctrl+C. Vous pouvez obtenir les événements à partir des journaux sélectionnés ou des journaux générés par les fournisseurs d'événements sélectionnés. En outre, vous pouvez combiner des événements provenant de plusieurs sources dans une seule commande.
Get-WinEvent
vous permet de filtrer des événements à l’aide de requêtes XPath, de requêtes XML structurées et de requêtes de table de hachage.
Si vous n’exécutez pas PowerShell en tant qu’administrateur, vous pouvez voir des messages d’erreur que vous ne pouvez pas récupérer d’informations sur un journal.
Exemples
Exemple 1 : Obtenir tous les journaux d’activité d’un ordinateur local
Cette commande obtient tous les journaux d’événements sur l’ordinateur local. Les journaux sont répertoriés dans l’ordre qui Get-WinEvent
les obtient. Les journaux classiques sont récupérés en premier, suivis des nouveaux journaux d’événements Windows.
Il est possible qu’un RecordCount d’un journal soit null, qui est vide ou zéro.
Get-WinEvent -ListLog *
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14500 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 3015 CxAudioSvcLog
Circular 20971520 ForwardedEvents
Circular 20971520 0 HardwareEvents
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListLog utilise le caractère générique astérisque (*
) pour afficher des informations sur chaque journal.
Exemple 2 : Obtenir le journal d’installation classique
Cette commande obtient un objet EventLogConfiguration qui représente le journal d’installation classique. L’objet inclut des informations sur le journal, telles que la taille de fichier, le fournisseur, le chemin d’accès au fichier et si le journal est activé.
Get-WinEvent -ListLog Setup | Format-List -Property *
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Setup
LogType : Operational
LogIsolation : Application
IsEnabled : True
IsClassicLog : False
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes : 1052672
LogMode : Circular
OwningProviderName : Microsoft-Windows-Eventlog
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
L’applet Get-WinEvent
de commande utilise le paramètre ListLog pour spécifier le journal d’installation. L’objet est envoyé vers le bas du pipeline à l’applet Format-List
de commande. Format-List
utilise le paramètre Property avec le caractère générique astérisque (*
) pour afficher chaque propriété.
Exemple 3 : Configurer le journal de sécurité classique
Cette commande obtient un objet EventLogConfiguration qui représente le journal de sécurité classique. L’objet est ensuite utilisé pour configurer les paramètres du journal, tels que la taille maximale du fichier, le chemin d’accès au fichier et si le journal est activé.
$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
$log.SaveChanges()
Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
$ErrMsg = 'You do not have permission to configure this log!'
$ErrMsg += ' Try running this script with administrator privileges. '
$ErrMsg += $_.Exception.Message
Write-Error $ErrMsg
}
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Security
LogType : Administrative
LogIsolation : Custom
IsEnabled : True
IsClassicLog : True
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Security.evtx
MaximumSizeInBytes : 1073741824
LogMode : Circular
OwningProviderName :
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
L’applet Get-WinEvent
de commande utilise le paramètre ListLog pour spécifier le journal de sécurité . L’objet est enregistré dans une variable. La propriété MaximumSizeInBytes est définie sur 1 gigaoctet sur l’objet. La méthode SaveChanges est appelée pour envoyer (push) la modification au système à l’intérieur d’un bloc try pour gérer les violations d’accès. L’applet Get-WinEvent
de commande est appelée à nouveau dans le journal de sécurité et redirigée vers l’applet Format-List
de commande pour vérifier que la propriété MaximumSizeInBytes a été enregistrée sur l’ordinateur.
Exemple 4 : Obtenir les journaux des événements à partir d’un serveur
Cette commande obtient uniquement les journaux des événements sur l’ordinateur local qui contient des événements. Il est possible qu’un RecordCount d’un journal soit null ou zéro. L’exemple utilise la $_
variable. Pour plus d’informations, consultez about_Automatic_Variables.
Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14546 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 2990 CxAudioSvcLog
Circular 1052672 9 MSFTVPN Setup
Circular 1052672 282 OAlerts
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListLog utilise le caractère générique astérisque (*
) pour afficher des informations sur chaque journal. Le paramètre ComputerName spécifie d’obtenir les journaux à partir de l’ordinateur local, localhost. Les objets sont envoyés au pipeline vers l’applet Where-Object
de commande. Where-Object
utilise $_.RecordCount
pour retourner uniquement les journaux qui contiennent des données. $_
est une variable qui représente l’objet actuel dans le pipeline. RecordCount est une propriété de l’objet avec une valeur non Null.
Exemple 5 : Obtenir les journaux des événements à partir de plusieurs serveurs
Cet exemple obtient des objets qui représentent les journaux des événements d’application sur trois ordinateurs : Server01, Server02 et Server03. Le mot clé ForEach est utilisé, car le paramètre ComputerName n’accepte qu’une seule valeur. Pour plus d’informations, consultez about_Foreach.
$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
Get-WinEvent -ListLog Application -ComputerName $Server |
Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
@{name='ComputerName'; expression={$Server}} |
Format-Table -AutoSize
}
LogMode MaximumSizeInBytes RecordCount LogName ComputerName
------- ------------------ ----------- ------- ------------
Circular 15532032 14577 Application Server01
Circular 15532032 9689 Application Server02
Circular 15532032 5309 Application Server03
La variable $S
stocke les noms trois serveurs : Server01, Server02 et Server03. L’instruction ForEach utilise une boucle pour traiter chaque serveur. ($Server in $S)
Le bloc de script dans les accolades ({ }
) exécute la Get-WinEvent
commande. Le paramètre ListLog spécifie le journal des applications . Le paramètre ComputerName utilise la variable $Server
pour obtenir des informations de journal à partir de chaque serveur.
Les objets sont envoyés au pipeline vers l’applet Select-Object
de commande. Select-Object
obtient les propriétés LogMode, MaximumSizeInBytes, RecordCount, LogName et utilise une expression calculée pour afficher ComputerName à l’aide de la $Server
variable. Les objets sont envoyés au pipeline à l’applet Format-Table
de commande pour afficher la sortie dans la console PowerShell. Le paramètre AutoSize met en forme la sortie pour qu’elle corresponde à l’écran.
Exemple 6 : Obtenir des fournisseurs de journaux d’événements et des noms de journaux
Cette commande obtient les fournisseurs de journaux d’événements et les journaux dans lesquels ils écrivent.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListProvider utilise le caractère générique astérisque (*
) pour afficher des informations sur chaque fournisseur. Dans la sortie, le nom est le fournisseur et LogLinks est le journal dans lequel le fournisseur écrit.
Exemple 7 : Obtenir tous les fournisseurs de journaux d’événements qui écrivent dans un journal spécifique
Cette commande obtient tous les fournisseurs qui écrivent dans le journal des applications .
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListLog utilise Application pour obtenir des objets pour ce journal. ProviderNames est une propriété de l’objet et affiche les fournisseurs qui écrivent dans le journal d’application .
Exemple 8 : Obtenir des noms de fournisseurs de journaux d’événements qui contiennent une chaîne spécifique
Cette commande obtient les fournisseurs de journaux d’événements avec des noms qui incluent une chaîne spécifique dans le nom du fournisseur.
Get-WinEvent -ListProvider *Policy*
Name : Group Policy Applications
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Client
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Data Sources
LogLinks : {Application}
Opcodes : {}
Tasks : {}
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListProvider utilise le caractère générique astérisque (*
) pour rechercher la stratégie n’importe où dans le nom du fournisseur.
Exemple 9 : Obtenir les ID d’événement générés par le fournisseur d’événements
Cette commande répertorie les ID d’événement générés par le fournisseur d’événements Microsoft-Windows-GroupPolicy , ainsi que la description de l’événement.
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description
Id Description
-- -----------
1500 The Group Policy settings for the computer were processed successfully...
1501 The Group Policy settings for the user were processed successfully...
4115 Group Policy Service started.
4116 Started the Group Policy service initialization phase.
4117 Group Policy Session started.
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre ListProvider spécifie le fournisseur, Microsoft-Windows-GroupPolicy. L’expression est encapsulée entre parenthèses et utilise la propriété Events pour obtenir des objets. Les objets sont envoyés au pipeline vers l’applet Format-Table
de commande. Format-Table
affiche l’ID et la description des objets d’événement.
Exemple 10 : Obtenir des informations de journal à partir des propriétés de l’objet d’événement
Cet exemple montre comment obtenir des informations sur le contenu d’un journal à l’aide de propriétés d’objet d’événement. Les objets d’événement sont stockés dans une variable, puis regroupés et comptés par ID d’événement et Niveau.
$Event = Get-WinEvent -LogName 'Windows PowerShell'
$Event.Count
$Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
$Event | Group-Object -Property LevelDisplayName -NoElement
195
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
Count Name
----- ----
2 Warning
193 Information
L’applet Get-WinEvent
de commande utilise le paramètre LogName pour spécifier le journal des événements Windows PowerShell . Les objets d’événement sont stockés dans la $Event
variable. La propriété Count d’affiche $Event
le nombre total d’événements enregistrés.
La $Event
variable est envoyée au pipeline à l’applet Group-Object
de commande. Group-Object
utilise le paramètre Property pour spécifier la propriété Id et compte les objets par la valeur ID d’événement. Le paramètre NoElement supprime d’autres propriétés de la sortie des objets. Les objets groupés sont envoyés au pipeline vers l’applet Sort-Object
de commande. Sort-Object
utilise le paramètre Property pour trier les objets par Count. Le paramètre décroissant affiche la sortie par nombre, du plus haut au plus bas. Dans la sortie, la colonne Count contient le nombre total de chaque événement. La colonne Name contient les numéros d’ID d’événement groupés.
La $Event
variable est envoyée au pipeline à l’applet Group-Object
de commande. Group-Object
utilise le paramètre Property pour spécifier la propriété LevelDisplayName et compte les objets par LevelDisplayName. Les objets sont regroupés par les niveaux tels que Avertissement et Informations.
Le paramètre NoElement supprime d’autres propriétés de la sortie. Dans la sortie, la colonne Count contient le nombre total de chaque événement. La colonne Name contient le LevelDisplayName groupé.
Exemple 11 : Obtenir les événements d’erreur qui ont une chaîne spécifiée dans leur nom
Cet exemple utilise une chaîne séparée par des virgules de noms de journaux. La sortie est regroupée par le niveau tel que l’erreur ou l’avertissement et le nom du journal.
Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* |
Group-Object -Property LevelDisplayName, LogName -NoElement |
Format-Table -AutoSize
Count Name
----- ----
1 Error, PowerShellCore/Operational
26 Information, Microsoft-Windows-Kernel-WHEA/Operational
488 Information, Microsoft-Windows-PowerShell/Operational
77 Information, PowerShellCore/Operational
9835 Information, Windows PowerShell
19 Verbose, PowerShellCore/Operational
444 Warning, Microsoft-Windows-PowerShell/Operational
512 Warning, PowerShellCore/Operational
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre LogName utilise une chaîne séparée par des virgules avec le caractère générique astérisque (*
) pour spécifier les noms de journal. Les 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 LevelDisplayName et LogName. Le paramètre NoElement supprime d’autres propriétés de la sortie. Les objets groupés sont envoyés au pipeline vers l’applet Format-Table
de commande. Format-Table
utilise le paramètre AutoSize pour mettre en forme les colonnes. La colonne Count contient le nombre total de chaque événement. La colonne Name contient le nom de NiveauDisplayName groupé et LogName.
Exemple 12 : Obtenir des événements à partir d’un journal des événements archivé
Get-WinEvent
peut obtenir des informations sur les événements à partir des fichiers journaux enregistrés. Cet exemple utilise un journal PowerShell archivé stocké sur l’ordinateur local.
Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 13:54:13 403 Information Engine state is changed from Available to Stopped...
3/15/2019 13:54:13 400 Information Engine state is changed from None to Available...
3/15/2019 13:54:13 600 Information Provider "Variable" is Started...
3/15/2019 13:54:13 600 Information Provider "Function" is Started...
3/15/2019 13:54:13 600 Information Provider "FileSystem" is Started...
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre Path spécifie le répertoire et le nom du fichier.
Exemple 13 : Obtenir un nombre spécifique d’événements à partir d’un journal des événements archivé
Ces commandes obtiennent un nombre spécifique d’événements à partir d’un journal des événements archivé. Get-WinEvent
a des paramètres qui peuvent obtenir un nombre maximal d’événements ou les événements les plus anciens. Cet exemple utilise un journal PowerShell archivé stocké dans C :\Test\PowerShellCore Operational.evtx.
Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100
ProviderName: PowerShellCore
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 09:54:54 4104 Warning Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13 40962 Information PowerShell console is ready for user input
3/15/2019 07:56:24 4104 Warning Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22 40961 Information PowerShell console is starting up
3/7/2019 10:53:22 8197 Verbose Runspace state changed to Opening
3/7/2019 10:53:22 8195 Verbose Opening RunspacePool
L’applet Get-WinEvent
de commande obtient des informations de journal à partir de l’ordinateur. Le paramètre Path spécifie le répertoire et le nom de fichier. Le paramètre MaxEvents spécifie que 100 enregistrements sont affichés, du plus récent au plus ancien.
Exemple 14 : Suivi d’événements pour Windows
Le suivi des événements pour Windows (ETW) écrit des événements dans le journal à mesure que des événements se produisent. Les événements sont stockés dans l’ordre du plus ancien au plus récent. Un fichier ETW archivé est enregistré en tant .etl
que TraceLog.etl.
Les événements sont répertoriés dans l’ordre dans lequel ils sont écrits dans le journal, de sorte que le paramètre le plus ancien est requis.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
Sort-Object -Property TimeCreated -Descending |
Select-Object -First 100
L’applet Get-WinEvent
de commande obtient des informations de journal à partir du fichier archivé. Le paramètre Path spécifie le répertoire et le nom du fichier. Le paramètre le plus ancien est utilisé pour générer des événements dans l’ordre dans lequel ils sont écrits, les plus anciens au plus récent. Les objets sont envoyés vers le bas du pipeline à l’applet Sort-Object
de commande Sort-Object
trie les objets dans l’ordre décroissant en fonction de la valeur de la propriété TimeCreated . Les objets sont envoyés au pipeline à l’applet Select-Object
de commande qui affiche les 100 événements les plus récents.
Exemple 15 : Obtenir des événements à partir d’un journal de suivi des événements
Cet exemple montre comment obtenir les événements à partir d’un fichier journal de trace d’événements (.etl
) et d’un fichier journal Windows PowerShell archivé (.evtx
). Vous pouvez combiner plusieurs types de fichier dans une seule commande.
Étant donné que les fichiers contiennent le même type d’objet .NET Framework , EventLogRecord, vous pouvez les filtrer avec les mêmes propriétés. La commande nécessite le paramètre le plus ancien, car il lit à partir d’un .etl
fichier, mais le paramètre le plus ancien s’applique à chaque fichier.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
L’applet Get-WinEvent
de commande obtient les informations de journal des fichiers archivés. Le paramètre Path utilise une liste séparée par des virgules pour spécifier chaque répertoire de fichiers et nom de fichier. Le paramètre le plus ancien est utilisé pour générer des événements dans l’ordre dans lequel ils sont écrits, les plus anciens au plus récent. Les objets sont envoyés au pipeline vers l’applet Where-Object
de commande. Where-Object
utilise un bloc de script pour rechercher des événements avec un ID de 403. La $_
variable représente l’objet actuel dans le pipeline et l’ID est la propriété ID d’événement.
Exemple 16 : Filtrer les résultats du journal des événements
Cet exemple montre diverses méthodes pour filtrer et sélectionner des événements dans un journal des événements. Toutes ces commandes obtiennent des événements qui se sont produits au cours des 24 dernières heures à partir du journal des événements Windows PowerShell .
Les méthodes de filtre sont plus efficaces que l’utilisation de l’applet de Where-Object
commande. Les filtres sont appliqués à mesure que les objets sont récupérés. Where-Object
récupère tous les objets, puis applique des filtres à tous les objets.
# Using the Where-Object cmdlet:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
$xmlQuery = @'
<QueryList>
<Query Id="0" Path="Windows PowerShell">
<Select Path="System">*[System[(Level=3) and
TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath
Exemple 17 : Utiliser FilterHashtable pour obtenir des événements à partir du journal des applications
Cet exemple utilise le paramètre FilterHashtable pour obtenir des événements à partir du journal des applications . La table de hachage utilise des paires clé/valeur . Pour plus d’informations sur le paramètre FilterHashtable , consultez Création de requêtes Get-WinEvent avec FilterHashtable. Pour plus d’informations sur les tables de hachage, voir À propos des tables de hachage.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
L’applet Get-Date
de commande utilise la méthode AddDays pour obtenir une date de deux jours avant la date actuelle. L’objet date est stocké dans la $Date
variable.
L’applet Get-WinEvent
de commande obtient des informations de journal. Le paramètre FilterHashtable est utilisé pour filtrer la sortie. La clé LogName spécifie la valeur comme journal d’application. La clé StartTime utilise la valeur stockée dans la $Date
variable. La clé ID utilise une valeur d’ID d’événement, 1003.
Exemple 18 : Utiliser FilterHashtable pour obtenir des erreurs d’application
Cet exemple utilise le paramètre FilterHashtable pour rechercher les erreurs d’application Internet Explorer qui se sont produites au cours de la semaine dernière.
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
Logname='Application'
ProviderName='Application Error'
Data='iexplore.exe'
StartTime=$StartTime
}
L’applet Get-Date
de commande utilise la méthode AddDays pour obtenir une date qui est de sept jours avant la date actuelle. L’objet date est stocké dans la $StartTime
variable.
L’applet Get-WinEvent
de commande obtient des informations de journal. Le paramètre FilterHashtable est utilisé pour filtrer la sortie. La clé LogName spécifie la valeur comme journal d’application. La clé ProviderName utilise la valeur, Erreur d’application, qui est la source de l’événement. La clé de données utilise la valeur iexplore.exe la clé StartTime utilise la valeur stockée dans $StartTime
la variable.
Paramètres
-ComputerName
Spécifie le nom de l’ordinateur que cette applet de commande obtient des événements à partir des journaux d’événements. Tapez le nom NetBIOS, une adresse IP ou le nom de domaine complet (FQDN) de l’ordinateur. La valeur par défaut est l’ordinateur local, localhost. Ce paramètre accepte uniquement un nom d'ordinateur à la fois.
Pour obtenir les journaux d’événements à partir d’ordinateurs distants, configurez le port de pare-feu du service de journal des événements pour autoriser l’accès à distance.
Cette applet de commande ne s’appuie pas sur la communication à distance PowerShell. Vous pouvez utiliser 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: | Local computer |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Credential
Spécifie un compte d’utilisateur qui a l’autorisation d’exécuter 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 Get-Credential
de commande. Si vous tapez un nom d’utilisateur, vous êtes invité à entrer un mot de passe. Si vous tapez uniquement le nom du paramètre, vous êtes invité à entrer un nom d’utilisateur et un mot de passe.
Type: | PSCredential |
Position: | Named |
Valeur par défaut: | Current user |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FilterHashtable
Spécifie une requête au format de table de hachage pour sélectionner des événements dans un ou plusieurs journaux d’événements. La requête contient une table de hachage avec une ou plusieurs paires clé/valeur .
Les requêtes de table de hachage comportent les règles suivantes :
- Les clés et les valeurs ne respectent pas la casse.
- Les caractères génériques sont valides uniquement dans les valeurs associées aux clés LogName et ProviderName.
- Chaque clé ne peut être répertoriée qu’une seule fois dans chaque table de hachage.
- La valeur Path prend les chemins d’accès aux
.etl
fichiers journaux et.evtx
les.evt
fichiers journaux. - Les clés LogName, Path et ProviderName peuvent être utilisées dans la même requête.
- La clé UserID peut prendre un identificateur de sécurité valide (SID) ou un nom de compte de domaine qui peut être utilisé pour construire un objet System.Security.Principal.NTAccount valide.
- La valeur de données prend les données d’événement dans un champ sans nom. Par exemple, les événements dans les journaux d’événements classiques.
Lorsqu’il Get-WinEvent
ne peut pas interpréter une paire clé/valeur , il interprète la clé comme un nom sensible à la casse pour les données d’événement dans l’événement.
Les paires clé/valeur valides Get-WinEvent
sont les suivantes :
- LogName=
<String[]>
- ProviderName=
<String[]>
- Chemin d’accès=
<String[]>
- Mots clés=
<Long[]>
- Identifiant=
<Int32[]>
- Niveau=
<Int32[]>
- StartTime=
<DateTime>
- EndTime=
<DateTime>
- UserID=
<SID>
- Données=
<String[]>
Type: | Hashtable[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FilterXml
Spécifie une requête XML structurée que cette applet de commande sélectionne des événements dans un ou plusieurs journaux d’événements.
Pour générer une requête XML valide, utilisez les fonctionnalités Créer une vue personnalisée et filtrer les fonctionnalités du journal actuel dans l’Observateur d’événements Windows. Utilisez les éléments de la boîte de dialogue pour créer une requête, puis cliquez sur l'onglet XML pour afficher la requête au format XML. Vous pouvez copier le code XML à partir de l’onglet XML dans la valeur du paramètre FilterXml . Pour plus d'informations sur les fonctionnalités de l'Observateur d'événements, consultez l'aide de l'Observateur d'événements.
Utilisez une requête XML pour créer une requête complexe qui contient plusieurs instructions XPath. Le format XML vous permet également d’utiliser un élément Suppress XML qui exclut les événements de la requête. Pour plus d’informations sur le schéma XML pour les requêtes de journal des événements, consultez La section Schéma de requête et requêtes d’événements XML de la sélection d’événements.
Type: | XmlDocument |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FilterXPath
Spécifie une requête XPath que cette applet de commande sélectionne des événements dans un ou plusieurs journaux d’activité.
Pour plus d’informations sur le langage XPath, consultez référence XPath et la section Filtres de sélection de la sélection d’événements.
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: | False |
-Force
Obtient les journaux de débogage et d'analyse, ainsi que d'autres journaux des événements. Le paramètre Force est requis pour obtenir un journal de débogage ou analytique lorsque la valeur du paramètre name inclut des caractères génériques.
Par défaut, l’applet Get-WinEvent
de commande exclut ces journaux, sauf si vous spécifiez le nom complet d’un journal de débogage ou analytique.
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 |
-ListLog
Spécifie les journaux des événements. Entrez les noms des journaux des événements dans une liste de valeurs séparées par des virgules. Les caractères génériques sont autorisés. Pour obtenir tous les journaux, utilisez le caractère générique astérisque (*
).
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-ListProvider
Spécifie les fournisseurs de journaux d’événements que cette applet de commande obtient. Le fournisseur du journal des événements est un programme ou service qui enregistre les événements dans le journal des événements.
Entrez les noms des fournisseurs dans une liste de valeurs séparées par des virgules. Les caractères génériques sont autorisés. Pour obtenir les fournisseurs de tous les journaux d’événements sur l’ordinateur, utilisez le caractère générique astérisque (*
).
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-LogName
Spécifie les journaux d’événements à partir duquel cette applet de commande obtient des événements. Entrez les noms des journaux des événements dans une liste de valeurs séparées par des virgules. Les caractères génériques sont autorisés. Vous pouvez également diriger les noms de journaux vers l’applet de Get-WinEvent
commande.
Remarque
PowerShell ne limite pas la quantité de journaux que vous pouvez demander. Toutefois, l’applet Get-WinEvent
de commande interroge l’API Windows qui a une limite de 256. Cela peut compliquer le filtrage de tous vos journaux à la fois. Vous pouvez contourner ce problème à l’aide d’une foreach
boucle pour itérer dans chaque journal comme suit : Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.Logname }
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-MaxEvents
Spécifie le nombre maximal d’événements retournés. Entrez un entier tel que 100. La valeur par défaut consiste à retourner tous les événements des journaux ou des fichiers.
Type: | Int64 |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Oldest
Indiquez que cette applet de commande obtient les événements dans l’ordre le plus ancien. Par défaut, les événements sont retournés du plus ancien au plus récent.
Ce paramètre est nécessaire pour obtenir des événements à partir des .etl
fichiers et .evt
des journaux de débogage et d’analyse. Dans ces fichiers, les événements sont enregistrés du plus ancien au plus récent, et ne peuvent être retournés que du plus ancien au plus récent.
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 |
-Path
Spécifie le chemin d’accès aux fichiers journaux d’événements à partir duquel cette applet de commande obtient des événements. Entrez les chemins d'accès des fichiers journaux dans une liste de valeurs séparées par des virgules, ou utilisez des caractères génériques pour créer des modèles de chemin d'accès de fichier.
Get-WinEvent
prend en charge les fichiers avec les .evt
extensions , .evtx
et .etl
de nom de fichier. Vous pouvez inclure les événements de différents fichiers et types de fichier dans la même commande.
Type: | String[] |
Alias: | PSPath |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-ProviderName
Spécifie, en tant que tableau de chaînes, les fournisseurs de journaux d’événements à partir desquels cette applet de commande obtient des événements. Entrez les noms des fournisseurs dans une liste de valeurs séparées par des virgules, ou utilisez des caractères génériques pour créer des modèles de nom de fournisseur.
Le fournisseur du journal des événements est un programme ou service qui enregistre les événements dans le journal des événements. Ce n’est pas un fournisseur PowerShell.
Type: | String[] |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
Entrées
Vous pouvez diriger un LogName (chaîne) vers cette applet de commande.
Vous pouvez diriger une requête FilterXML vers cette applet de commande.
Vous pouvez diriger une requête FilterHashtable vers cette applet de commande.
Sorties
Avec le paramètre ListLog , cette applet de commande retourne des objets EventLogConfiguration .
Par défaut, cette applet de commande retourne des objets EventLogRecord .
Avec le paramètre ListProvider , cette applet de commande retourne des objets ProviderMetadata .
Notes
Get-WinEvent
est conçu pour remplacer l’applet Get-EventLog
de commande sur les ordinateurs exécutant Windows Vista et les versions ultérieures de Windows. Get-EventLog
obtient les événements uniquement dans les journaux d’événements classiques. Get-EventLog
est conservé à des fins de compatibilité descendante.
Les Get-WinEvent
applets de commande et Get-EventLog
les applets de commande ne sont pas prises en charge dans l’environnement de préinstallation Windows (Windows PE).