Condividi tramite


Get-WinEvent

Ottiene gli eventi dai registri eventi e dai file di log di traccia eventi nei computer locali e remoti.

Sintassi

Get-WinEvent
   [[-LogName] <string[]>]
   [-MaxEvents <long>]
   [-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 <long>]
   [-ComputerName <string>]
   [-Credential <pscredential>]
   [-FilterXPath <string>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-Path] <string[]>
   [-MaxEvents <long>]
   [-Credential <pscredential>]
   [-FilterXPath <string>]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-FilterXml] <xml>
   [-MaxEvents <long>]
   [-ComputerName <string>]
   [-Credential <pscredential>]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-FilterHashtable] <hashtable[]>
   [-MaxEvents <long>]
   [-ComputerName <string>]
   [-Credential <pscredential>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]

Descrizione

Il cmdlet ottiene gli eventi dai registri eventi, inclusi i log classici, ad esempio i log di sistema e i log dell'applicazione. Il cmdlet ottiene i dati dai registri eventi generati dalla tecnologia Registro eventi di Windows introdotta in Windows Vista. Inoltre, gli eventi nei file di log generati da Event Tracing for Windows (ETW). Per impostazione predefinita, Get-WinEvent restituisce le informazioni sugli eventi nell'ordine più recente di quello meno recente.

Get-WinEvent elenca i log eventi e i provider di log eventi. Per interrompere il comando, premere CTRL+C. È possibile ottenere eventi dai log selezionati o dai log generati dai provider di eventi selezionati. È anche possibile combinare eventi da più origini in un singolo comando. Get-WinEvent consente di filtrare gli eventi usando query XPath, query XML strutturate e query di tabella hash.

Se PowerShell non è in esecuzione come amministratore, è possibile che vengano visualizzati messaggi di errore che non è possibile recuperare informazioni su un log.

Esempio

Esempio 1: Ottenere tutti i log da un computer locale

Questo comando ottiene tutti i registri eventi nel computer locale. I log sono elencati nell'ordine in cui Get-WinEvent recuperarli. I log classici vengono recuperati per primi, seguiti dai nuovi registri eventi di Windows. È possibile che l'RecordCount di un log essere null, ovvero vuoto o zero.

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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListLog usa il carattere jolly asterisco (*) per visualizzare informazioni su ogni log.

Esempio 2: Ottenere il log di installazione classico

Questo comando ottiene un oggetto EventLogConfiguration che rappresenta il log di installazione classica. L'oggetto include informazioni sul log, ad esempio dimensioni del file, provider, percorso file e se il log è abilitato.

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            :

Il cmdlet usa il parametro ListLog per specificare il log setup. L'oggetto viene inviato alla pipeline al cmdlet Format-List. usa il parametro property con il carattere jolly asterisco () per visualizzare ogni proprietà.

Esempio 3: Ottenere i registri eventi da un server

Questo comando ottiene solo i registri eventi nel computer locale che contengono eventi. È possibile che l'RecordCount di un log sia null o zero. Nell'esempio viene utilizzata la variabile $_. Per altre informazioni, vedere 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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListLog usa il carattere jolly asterisco (*) per visualizzare informazioni su ogni log. Il parametro ComputerName consente di ottenere i log dal computer locale, localhost. Gli oggetti vengono inviati alla pipeline al cmdlet Where-Object. Where-Object usa $_.RecordCount per restituire solo i log che contengono dati. $_ è una variabile che rappresenta l'oggetto corrente nella pipeline. RecordCount è una proprietà dell'oggetto con un valore non Null.

Esempio 4: Ottenere i registri eventi da più server

In questo esempio vengono restituiti oggetti che rappresentano i registri eventi application in tre computer: Server01, Server02 e Server03. Viene utilizzata la parola chiave ForEach perché il parametro ComputerName accetta un solo valore. Per altre informazioni, vedere 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 variabile $S archivia i nomi tre server: Server01, Server02e Server03. L'istruzione ForEach usa un ciclo per elaborare ogni server . Il blocco di script nelle parentesi graffe ({ }) esegue il comando Get-WinEvent. Il parametro ListLog specifica il log 'applicazione. Il parametro ComputerName usa la variabile per ottenere informazioni di log da ogni server.

Gli oggetti vengono inviati alla pipeline al cmdlet Select-Object. Select-Object ottiene le proprietà LogMode, MaximumSizeInBytes, RecordCount, LogNamee usa un'espressione calcolata per visualizzare il ComputerName utilizzando la variabile $Server. Gli oggetti vengono inviati alla pipeline al cmdlet Format-Table per visualizzare l'output nella console di PowerShell. Il parametro AutoSize formatta l'output in modo che si adatti allo schermo.

Esempio 5: Ottenere i provider e i nomi dei log eventi

Questo comando ottiene i provider del registro eventi e i log in cui scrivono.

Get-WinEvent -ListProvider *

Name     : .NET Runtime
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListProvider usa il carattere jolly asterisco (*) per visualizzare informazioni su ogni provider. Nell'output l' Name è il provider e LogLinks è il log in cui scrive il provider.

Esempio 6: Ottenere tutti i provider di log eventi che scrivono in un log specifico

Questo comando ottiene tutti i provider che scrivono nel log dell'applicazione .

(Get-WinEvent -ListLog Application).ProviderNames

.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListLog usa application di per ottenere oggetti per tale log. ProviderNames è una proprietà dell'oggetto e visualizza i provider che scrivono nel log application .

Esempio 7: Ottenere i nomi del provider del registro eventi che contengono una stringa specifica

Questo comando ottiene i provider del registro eventi con nomi che includono una stringa specifica nel nome del provider.

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    : {}

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListProvider usa il carattere jolly asterisco () per trovare Criterio in qualsiasi punto del nome del provider.

Esempio 8: Ottenere gli ID evento generati dal provider di eventi

Questo comando elenca gli ID evento generati dal provider di eventi Microsoft-Windows-GroupPolicy insieme alla descrizione dell'evento.

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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro ListProvider specifica il provider Microsoft-Windows-GroupPolicy. L'espressione viene racchiusa tra parentesi e usa la proprietà Events per ottenere gli oggetti. Gli oggetti vengono inviati alla pipeline al cmdlet Format-Table. visualizza il ID e Description degli oggetti evento.

Esempio 9: Ottenere informazioni di log dalle proprietà dell'oggetto evento

In questo esempio viene illustrato come ottenere informazioni sul contenuto di un log usando le proprietà dell'oggetto evento. Gli oggetti evento vengono archiviati in una variabile e quindi raggruppati e conteggiati in base all'ID evento e Level.

PS> $Event = Get-WinEvent -LogName 'Windows PowerShell'

PS> $Event.Count
195

PS> $Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending

Count  Name
-----  ----
  147  600
   22  400
   21  601
    3  403
    2  103

PS> $Event | Group-Object -Property LevelDisplayName -NoElement

Count  Name
-----  ----
    2  Warning
  193  Information

Il cmdlet usa il parametro LogName per specificare il registro eventi di Windows PowerShell . Gli oggetti evento vengono archiviati nella variabile $Event.

usa la proprietà Count della variabile di per visualizzare il numero totale di eventi registrati.

La variabile $Event viene inviata alla pipeline al cmdlet Group-Object. usa il parametro Property per specificare la proprietà ID e conta gli oggetti in base all'ID . Il parametro NoElement rimuove altre proprietà dall'output degli oggetti. Gli oggetti raggruppati vengono inviati alla pipeline al cmdlet Sort-Object. usa il parametro Property per ordinare gli oggetti in base Count. Il parametro decrescente visualizza l'output in base al conteggio, dal più alto al più basso. Nell'output la colonna count contiene il numero totale di ogni evento. La colonna Nome contiene i numeri id raggruppati.

La variabile $Event viene inviata alla pipeline al cmdlet Group-Object. utilizza il parametro Property per specificare la proprietà LevelDisplayName e conta gli oggetti LevelDisplayName. Gli oggetti sono raggruppati in base ai livelli, ad esempio avviso e informazioni . Il parametro NoElement rimuove altre proprietà dall'output. Nell'output la colonna count contiene il numero totale di ogni evento. La colonna Nome contiene il LevelDisplayName raggruppato.

Esempio 10: Ottenere eventi di errore con una stringa specificata nel nome

In questo esempio viene usata una stringa delimitata da virgole di nomi di log. L'output viene raggruppato in base al livello, ad esempio l'errore o l'avviso e il nome del log.

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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro LogName usa una stringa delimitata da virgole con il carattere jolly asterisco (*) per specificare i nomi di log. Gli oggetti vengono inviati alla pipeline al cmdlet Group-Object. usa il parametro Property per raggruppare gli oggetti LevelDisplayName e LogName. Il parametro NoElement rimuove altre proprietà dall'output. Gli oggetti raggruppati vengono inviati alla pipeline al cmdlet Format-Table. usa il parametro AutoSize per formattare le colonne. La colonna conteggio contiene il numero totale di ogni evento. La colonna Name contiene il LevelDisplayName raggruppato e LogName.

Esempio 11: Ottenere eventi da un registro eventi archiviato

Get-WinEvent possibile ottenere informazioni sugli eventi dai file di log salvati. Questo esempio usa un log di PowerShell archiviato archiviato nel computer locale.

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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro Percorso specifica la directory e il nome file.

Esempio 12: Ottenere un numero specifico di eventi da un registro eventi archiviato

Questi comandi ottengono un numero specifico di eventi da un registro eventi archiviato. Get-WinEvent include parametri che possono ottenere un numero massimo di eventi o gli eventi meno recenti. Questo esempio usa un log di PowerShell archiviato archiviato in C:\Test\PowerShellCore Operational.evtx.

PS> 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

Il cmdlet Get-WinEvent ottiene le informazioni di log dal computer. Il parametro Percorso specifica la directory e il nome file. Il parametro MaxEvents specifica che vengono visualizzati 100 record, dal più recente al meno recente.

Esempio 13: Traccia eventi per Windows

Event Tracing for Windows (ETW) scrive gli eventi nel log man mano che si verificano eventi. Gli eventi vengono archiviati nell'ordine dei meno recenti a quello più recente. Un file ETW archiviato viene salvato come .etl, ad esempio TraceLog.etl. Gli eventi vengono elencati nell'ordine in cui vengono scritti nel log, quindi è necessario il parametro meno recente .

PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest | Sort-Object -Property TimeCreated -Descending | Select-Object -First 100

Il cmdlet Get-WinEvent ottiene informazioni di log dal file archiviato. Il parametro Percorso specifica la directory e il nome file. Il parametro meno recente viene usato per restituire gli eventi nell'ordine in cui vengono scritti, meno recenti. Gli oggetti vengono inviati alla pipeline al cmdlet Sort-ObjectSort-Object ordina gli oggetti in ordine decrescente in base al valore della proprietà TimeCreated. Gli oggetti vengono inviati alla pipeline al cmdlet Select-Object che visualizza i 100 eventi più recenti.

Esempio 14: Ottenere eventi da un log di traccia eventi

Questo esempio illustra come ottenere gli eventi da un file di log di traccia eventi (.etl) e un file di log di Windows PowerShell archiviato (.evtx). È possibile combinare più tipi di file in un singolo comando. Poiché i file contengono lo stesso tipo di oggetto .NET Framework, EventLogRecord, è possibile filtrarli con le stesse proprietà. Il comando richiede il parametro meno recente perché legge da un file di , ma il parametro meno recente si applica a ogni file.

PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest | Where-Object { $_.Id -eq '403' }

Il cmdlet Get-WinEvent ottiene le informazioni di log dai file archiviati. Il parametro Percorso usa un elenco delimitato da virgole per specificare ogni directory e nome file. Il parametro meno recente viene usato per restituire gli eventi nell'ordine in cui vengono scritti, meno recenti. Gli oggetti vengono inviati alla pipeline al cmdlet Where-Object. Where-Object usa un blocco di script per trovare gli eventi con e ID di 403. La variabile $_ rappresenta l'oggetto corrente nella pipeline e ID è la proprietà Id evento.

Esempio 15: Filtrare i risultati del registro eventi

Questo esempio mostra un'ampia gamma di metodi per filtrare e selezionare gli eventi da un registro eventi. Tutti questi comandi ottengono eventi che si sono verificati nelle ultime 24 ore dal registro eventi di Windows PowerShell. I metodi di filtro sono più efficienti rispetto all'uso del cmdlet Where-Object. I filtri vengono applicati quando vengono recuperati gli oggetti. Where-Object recupera tutti gli oggetti, quindi applica filtri a tutti gli oggetti.

# Using the Where-Object cmdlet:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }

# Using the FilterHashtable parameter:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }

# Using the FilterXML parameter:
PS> Get-WinEvent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime)<= 86400000]]]</Select></Query></QueryList>"

# Using the FilterXPath parameter:
PS> Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"

Esempio 16: Usare FilterHashtable per ottenere eventi dal registro applicazioni

Questo esempio usa il parametro FilterHashtable per ottenere eventi dal log application . La tabella hash usa coppie chiave/valore. Per altre informazioni sul parametro FilterHashtable , vedere Creating Get-WinEvent queries with FilterHashtable. Per altre informazioni sulle tabelle hash, vedere about_Hash_Tables.

$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }

Il cmdlet usa il metodo AddDays per ottenere una data di due giorni prima della data corrente. L'oggetto date viene archiviato nella variabile $Date.

Il cmdlet Get-WinEvent ottiene informazioni di log. Il parametro FilterHashtable viene usato per filtrare l'output. La chiave LogName specifica il valore come log application. La chiave StartTime usa il valore archiviato nella variabile . La chiave ID usa un valore id evento 1003.

Esempio 17: Usare FilterHashtable per ottenere errori dell'applicazione

Questo esempio usa il parametro FilterHashtable per trovare gli errori dell'applicazione di Internet Explorer che si sono verificati nell'ultima settimana.

$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{ Logname='Application'; ProviderName='Application Error'; Data='iexplore.exe'; StartTime=$StartTime }

Il cmdlet usa il metodo AddDays per ottenere una data di sette giorni prima della data corrente. L'oggetto date viene archiviato nella variabile $StartTime.

Il cmdlet Get-WinEvent ottiene informazioni di log. Il parametro FilterHashtable viene usato per filtrare l'output. La chiave LogName specifica il valore come log application. La chiave ProviderName usa il valore 'errore dell'applicazione, ovvero l'origine dell'evento . La chiave data di usa il valore iexplore.exe La chiave StartTime usa il valore archiviato nella variabile .

Parametri

-ComputerName

Specifica il nome del computer in cui il cmdlet ottiene gli eventi dai registri eventi. Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o il nome di dominio completo (FQDN) del computer. Il valore predefinito è il computer locale, localhost. Questo parametro accetta un solo nome computer alla volta.

Per ottenere i registri eventi dai computer remoti, configurare la porta del firewall per il servizio registro eventi per consentire l'accesso remoto.

Questo cmdlet non si basa sulla comunicazione remota di PowerShell. È possibile usare il parametro ComputerName anche se il computer non è configurato per eseguire comandi remoti.

Tipo:String
Alias:Cn
Posizione:Named
Valore predefinito:Local computer
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Specifica un account utente autorizzato a eseguire questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio User01 o Domain01\User01. In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password. Se si digita solo il nome del parametro, viene richiesto sia un nome utente che una password.

Tipo:PSCredential
Posizione:Named
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FilterHashtable

Specifica una query in formato tabella hash per selezionare gli eventi da uno o più registri eventi. La query contiene una tabella hash con una o più coppie chiave/valore .

Le query di tabella hash hanno le regole seguenti:

  • Le chiavi e i valori non fanno distinzione tra maiuscole e minuscole.
  • I caratteri jolly sono validi solo nei valori associati alle chiavi LogName e ProviderName.
  • Ogni chiave può essere elencata una sola volta in ogni tabella hash.
  • Il valore Percorso accetta i percorsi per , e file di log.
  • Le chiavi diLogName e ProviderName possono essere usate nella stessa query.
  • La chiave UserID può accettare un ID di sicurezza (SID) valido o un nome di account di dominio che può essere usato per costruire un oggetto valido System.Security.Principal.NTAccount.
  • Il valore Data accetta i dati dell'evento in un campo senza nome. Ad esempio, eventi nei registri eventi classici.
  • <named-data> chiave rappresenta un campo dati evento denominato.

Quando non è in grado di interpretare una coppia chiave/valore , interpreta la chiave come nome con distinzione tra maiuscole e minuscole per i dati dell'evento nell'evento.

Le coppie chiave/valore valide sono le seguenti:

  • = <String[]> LogName
  • ProviderName=<String[]>
  • percorso=<String[]>
  • parole chiave=<Long[]>
  • ID=<Int32[]>
  • livello di
  • = <DateTime> StartTime
  • = <DateTime> EndTime
  • = <SID> UserID
  • data=<String[]>
  • <named-data>=<String[]>
Tipo:Hashtable[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FilterXml

Specifica una query XML strutturata che questo cmdlet seleziona gli eventi da uno o più registri eventi.

Per generare una query XML valida, utilizzare le funzionalità Create Custom View e Filter Current Log in Visualizzatore eventi di Windows. Utilizzare gli elementi nella finestra di dialogo per creare una query e quindi fare clic sulla scheda XML per visualizzare la query in formato XML. È possibile copiare il codice XML dalla scheda XML nel valore del parametro FilterXml . Per altre informazioni sulle funzionalità del Visualizzatore eventi, vedere Guida del Visualizzatore eventi.

Usare una query XML per creare una query complessa contenente diverse istruzioni XPath. Il formato XML consente inoltre di utilizzare un elemento Suppress XML che esclude gli eventi dalla query. Per altre informazioni su XML Schema per le query del log eventi, vedere query schema e la sezione Query sugli eventi XML del selezione eventi in MSDN Library.

Tipo:XmlDocument
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FilterXPath

Specifica una query XPath selezionata da uno o più log da questo cmdlet.

Per altre informazioni sul linguaggio XPath, vedere di riferimento XPath e la sezione Filtri di selezione del Selezione eventi in MSDN Library.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Force

Ottiene i log di debug e analitici, oltre ad altri log eventi. Il parametro Force è necessario per ottenere un log di debug o analitico quando il valore del parametro name include caratteri jolly.

Per impostazione predefinita, il cmdlet Get-WinEvent esclude questi log a meno che non si specifichi il nome completo di un log di debug o analitico.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ListLog

Specifica i registri eventi. Immettere i nomi del registro eventi in un elenco delimitato da virgole. Sono consentiti caratteri jolly. Per ottenere tutti i log, usare il carattere jolly asterisco (*).

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-ListProvider

Specifica i provider del registro eventi che ottiene questo cmdlet. Un provider di log eventi è un programma o un servizio che scrive gli eventi nel registro eventi.

Immettere i nomi dei provider in un elenco delimitato da virgole. Sono consentiti caratteri jolly. Per ottenere i provider di tutti i registri eventi nel computer, usare il carattere jolly asterisco (*).

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-LogName

Specifica i registri eventi da cui questo cmdlet ottiene gli eventi. Immettere i nomi del registro eventi in un elenco delimitato da virgole. Sono consentiti caratteri jolly. È anche possibile inviare tramite pipe i nomi dei log al cmdlet Get-WinEvent.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-MaxEvents

Specifica il numero massimo di eventi restituiti. Immettere un numero intero, ad esempio 100. L'impostazione predefinita consiste nel restituire tutti gli eventi nei log o nei file.

Tipo:Int64
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Oldest

Indicare che questo cmdlet ottiene gli eventi nell'ordine meno recente. Per impostazione predefinita, gli eventi vengono restituiti nell'ordine più recente.

Questo parametro è necessario per ottenere eventi da .etl e .evt file e dai log di debug e analitici. In questi file, gli eventi vengono registrati in ordine meno recente e gli eventi possono essere restituiti solo in ordine meno recente.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Path

Specifica il percorso dei file di log eventi da cui questo cmdlet ottiene gli eventi. Immettere i percorsi dei file di log in un elenco delimitato da virgole oppure usare caratteri jolly per creare modelli di percorso file.

Get-WinEvent supporta i file con le estensioni di file .evt, .evtxe .etl. È possibile includere eventi di file e tipi di file diversi nello stesso comando.

Tipo:String[]
Alias:PSPath
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-ProviderName

Specifica, come matrice di stringhe, i provider del registro eventi da cui questo cmdlet ottiene gli eventi. Immettere i nomi dei provider in un elenco delimitato da virgole o usare caratteri jolly per creare modelli di nome provider.

Un provider di log eventi è un programma o un servizio che scrive gli eventi nel registro eventi. Non è un provider di PowerShell.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

Input

System.String, System.Xml.XmlDocument, System.Collections.Hashtable

È possibile eseguire la pipeline di un LogName (stringa), una query FilterXML o una query FilterHashtable per .

Output

System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.ProviderMetadata

Con il parametro ListLog , restituisce oggetti System.Diagnostics.Eventing.Reader.EventLogConfiguration.

Con il parametro ListProvider, restituisce oggetti System.Diagnostics.Eventing.Reader.ProviderMetadata.

Con tutti gli altri parametri, Get-WinEvent restituisce oggetti System.Diagnostics.Eventing.Reader.EventLogRecord.

Note

Get-WinEvent viene eseguito in Windows Vista, Windows Server 2008 R2 e versioni successive di Windows.

Get-WinEvent è progettato per sostituire il cmdlet Get-EventLog nei computer che eseguono Windows Vista e versioni successive di Windows. Get-EventLog ottiene eventi solo nei log eventi classici. Get-EventLog viene conservato nelle versioni precedenti a PowerShell 6 per garantire la compatibilità con le versioni precedenti.

I cmdlet Get-WinEvent e Get-EventLog non sono supportati in Windows Pre-installation Environment (Windows PE).