Ottiene gli eventi in un registro eventi o un elenco dei registri eventi, sui computer locali o remoti.
Sintassi
Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParameters>] Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryType <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Source <string[]>] [-UserName <string[]>] [<CommonParameters>]
Descrizione
Con il cmdlet Get-EventLog vengono ottenuti gli eventi e i registri eventi nei computer locali e remoti.
Utilizzare i parametri di Get-EventLog per cercare gli eventi utilizzando i relativi valori delle proprietà. Con Get-EventLog vengono ottenuti solo gli eventi che corrispondono a tutti i valori delle proprietà specificati.
I cmdlet che contengono il sostantivo EventLog (cmdlet EventLog) funzionano solo su registri eventi classici. Per ottenere eventi da registri che utilizzano la tecnologia Registro eventi di Windows in Windows Vista e nelle versioni successive di Windows, utilizzare Get-WinEvent.
Parametri
-After <DateTime>
Ottiene solo gli eventi che si verificano dopo la data e l'ora specificate. Immettere un oggetto DateTime, ad esempio quello restituito dal cmdlet Get-Date.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-AsBaseObject
Restituisce un oggetto System.Diagnostics.EventLogEntry standard per ogni evento. Senza questo parametro, Get-EventLog restituisce un oggetto PSObject esteso con proprietà EventLogName, Source e InstanceId aggiuntive.
Per vedere l'effetto di questo parametro, indirizzare gli eventi al cmdlet Get-Member ed esaminare il valore TypeName nel risultato.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
False |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-AsString
Restituisce l'output come stringhe anziché come oggetti.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Before <DateTime>
Ottiene solo gli eventi che si verificano prima della data e dell'ora specificate. Immettere un oggetto DateTime, ad esempio quello restituito dal cmdlet Get-Date.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-ComputerName <string[]>
Specifica un computer remoto. Il valore predefinito è il computer locale.
Digitare il nome NetBIOS, un indirizzo IP (Internet Protocol) o un nome di dominio completo di un computer remoto. Per specificare il computer locale, digitare il nome del computer, un punto (.) o "localhost".
Questo parametro non si basa sulla comunicazione remota di Windows PowerShell. È possibile utilizzare il parametro ComputerName di Get-EventLog anche se il computer non è configurato per l'esecuzione di comandi remoti.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-EntryType <string[]>
Ottiene solo gli eventi con il tipo di voce specificato. I valori validi sono Error, Information, FailureAudit, SuccessAudit e Warning. L'impostazione predefinita include tutti gli eventi.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
All events |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Index <Int32[]>
Ottiene solo gli eventi con i valori di indice specificati.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
All events |
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-InstanceId <Int64[]>
Ottiene solo gli eventi con gli ID istanza specificati.
Obbligatorio? |
false |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-List
Ottiene un elenco dei registri eventi nel computer.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-LogName <string>
Specifica il registro eventi. Immettere il nome registro (il valore della proprietà Log, non LogDisplayName) di uno dei registri eventi. Non è consentito l'utilizzo di caratteri jolly. Questo parametro è obbligatorio.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Message <string>
Ottiene gli eventi che presentano la stringa specificata nei messaggi. È possibile utilizzare questa proprietà per cercare i messaggi che contengono determinate parole o frasi. È consentito l'utilizzo di caratteri jolly.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
-Newest <int>
Specifica il numero massimo di eventi recuperati. Con Get-EventLog viene ottenuto il numero specificato di eventi, partendo dall'evento più recente nel log.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Source <string[]>
Ottiene gli eventi scritti nel log dalle origini specificate. È consentito l'utilizzo di caratteri jolly.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
-UserName <string[]>
Ottiene solo gli eventi associati ai nomi utente specificati. Immettere nomi o modelli di nome, ad esempio Utente01, Utente* o Dominio01\Utente*. È consentito l'utilizzo di caratteri jolly.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
true |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
Nessuno. Non è possibile reindirizzare l'input a questo cmdlet. |
Output |
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String Se viene specificato il parametro LogName, l'output è una raccolta di oggetti EventLogEntry (System.Diagnostics.EventLogEntry). Se viene specificato solo il parametro List, l'output è una raccolta di oggetti EventLog (System.Diagnostics.EventLog). Se vengono specificati sia il parametro List sia il parametro AsString, l'output è una raccolta di stringhe (System.String). |
Esempio 1
C:\PS>get-eventlog -list Descrizione ----------- Con questo comando vengono visualizzate informazioni relative ai registri eventi nel computer.
Esempio 2
C:\PS>get-eventlog -newest 5 -logname application Descrizione ----------- Con questo comando vengono visualizzate le cinque voci più recenti nel registro eventi dell'applicazione.
Esempio 3
C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | group-object -property source -noelement | sort-object -property count -descending Count Name ----- ---- 75 Service Control Manager 12 Print 6 UmrdpService 2 DnsApi 2 DCOM 1 Dhcp 1 TermDD 1 volsnap Descrizione ----------- In questo esempio viene illustrato come trovare tutte le origini rappresentate nelle 1000 voci più recenti de registro eventi di sistema. Con il primo comando si ottengono le 1000 voci più recenti nel registro eventi di sistema, le quali vengono archiviate nella variabile $events. Nel secondo comando viene utilizzato un operatore pipeline (|) per inviare gli eventi in $events al cmdlet Group-Object che raggruppa le voci per il valore della proprietà Source. Nel comando è utilizzato un secondo operatore pipeline per inviare gli eventi raggruppati al cmdlet Sort-Object che li ordina in ordine decrescente in modo che l'origine che appare più frequentemente sia elencata per prima. Source è solo una proprietà delle voci del registro eventi. Per visualizzate tutte le altre proprietà di una voce del registro eventi, indirizzare gli eventi al cmdlet Get-Member.
Esempio 4
C:\PS>get-eventlog -logname System -EntryType Error Descrizione ----------- Con questo comando vengono ottenuti solo gli eventi di errore del registro eventi di sistema.
Esempio 5
C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM" Descrizione ----------- Con questo comando vengono ottenuti gli eventi del registro di sistema che presentano InstanceID di 3221235481 e un valore Source di "DCOM."
Esempio 6
C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Server01, Server02 Descrizione ----------- Con questo comando vengono ottenuti gli eventi del registro eventi "Windows PowerShell" su tre computer, Server01, Server02 e il computer locale, denominato "localhost".
Esempio 7
C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*" Descrizione ----------- Con questo comando vengono ottenuti tutti gli eventi del registro eventi Windows PowerShell che presentano un valore di messaggio che include la parola "failed".
Esempio 8
C:\PS>$a = get-eventlog -log System -newest 1 C:\PS> $a | format-list -property * EventID : 7036 MachineName : Server01 Data : {} Index : 10238 Category : (0) CategoryNumber : 0 EntryType : Information Message : The description for Event ID Source : Service Control Manager ReplacementStrings : {WinHTTP Web Proxy Auto-Disco InstanceId : 1073748860 TimeGenerated : 4/11/2008 9:56:05 PM TimeWritten : 4/11/2008 9:56:05 PM UserName : Site : Container : Descrizione ----------- In questo esempio viene illustrato come visualizzare tutti i valori delle proprietà di un evento. Con il primo comando viene ottenuto l'evento più recente del registro eventi di sistema e viene salvato nella variabile $a. Nel il secondo comando viene utilizzato un operatore pipeline (|) per inviare l'evento in $a al comando Format-List che visualizza tutte (*) le proprietà dell'evento.
Esempio 9
C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34} Descrizione ----------- Con questo comando vengono ottenuti gli eventi del registro eventi dell'applicazione dove l'origine è Outlook e l'ID evento è 34. Anche se Get-EventLog non presenta un parametro EventID, è possibile utilizzare il cmdlet Where-Object per selezionare gli eventi in base al valore di qualsiasi proprietà degli eventi.
Esempio 10
C:\PS>get-eventlog -log system -username NT* | group-object -property username -noelement | format-table Count, Name -auto Count Name ----- ---- 6031 NT AUTHORITY\SYSTEM 42 NT AUTHORITY\LOCAL SERVICE 4 NT AUTHORITY\NETWORK SERVICE Descrizione ----------- Con questo comando vengono restituiti gli venti del registro di sistema raggruppati per il valore della proprietà UserName. Nel comando Get-EventLog viene utilizzato il parametro UserName per ottenere solo gli eventi nei quali il nome utente inizia con "NT*".
Esempio 11
C:\PS>$May31 = get-date 5/31/08 C:\PS> $July1 = get-date 7/01/08 C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may31 -before $july1 Descrizione ----------- Con questo comando vengono ottenuti tutti gli errori del registro eventi Windows PowerShell che si sono verificati nel giugno 2008.
Vedere anche