Get-EventLog
Obtém os eventos em um log de eventos ou em uma lista de logs de eventos no computador local ou em computadores remotos.
Sintaxe
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
O Get-EventLog
cmdlet obtém eventos e logs de eventos de computadores locais e remotos. Por padrão, Get-EventLog
obtém logs do computador local. Para obter logs de computadores remotos, use o parâmetro ComputerName .
Você pode usar os parâmetros e valores Get-EventLog
de propriedade para pesquisar eventos. O cmdlet obtém eventos que correspondem aos valores de propriedade especificados.
Os cmdlets do PowerShell que contêm o EventLog
substantivo funcionam apenas em logs de eventos clássicos do Windows, como Aplicativo, Sistema ou Segurança. Para obter logs que usam a tecnologia de Log de Eventos do Windows no Windows Vista e versões posteriores do Windows, use Get-WinEvent
.
Observação
Get-EventLog
usa uma API Win32 que foi preterida. Os resultados podem não ser precisos. Em vez disso, use o Get-WinEvent
cmdlet.
Exemplos
Exemplo 1: Obter logs de eventos no computador local
Este exemplo exibe a lista de logs de eventos disponíveis no computador local. Os nomes na coluna Log são usados com o parâmetro LogName para especificar qual log é pesquisado por eventos.
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
O Get-EventLog
cmdlet usa o parâmetro List para exibir os logs disponíveis.
Exemplo 2: Obter entradas recentes de um log de eventos no computador local
Este exemplo obtém entradas recentes do log de eventos do sistema.
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...
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log de eventos do sistema. O parâmetro Newest retorna os cinco eventos mais recentes.
Exemplo 3: Localizar todas as fontes para um número específico de entradas em um log de eventos
Este exemplo mostra como localizar todas as fontes incluídas nas 1000 entradas mais recentes no log de eventos do sistema.
$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
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro Mais recente seleciona os 1000 eventos mais recentes. Os objetos de evento são armazenados na $Events
variável. Os $Events
objetos são enviados pelo pipeline para o Group-Object
cmdlet.
Group-Object
usa o parâmetro Property para agrupar os objetos por origem e conta o número de objetos para cada fonte. O parâmetro NoElement remove os membros do grupo da saída.
O Sort-Object
cmdlet usa o parâmetro Property para classificar pela contagem de cada nome de origem.
O parâmetro Descending classifica a lista em ordem por contagem, da mais alta para a mais baixa.
Exemplo 4: Obter eventos de erro de um log de eventos específico
Este exemplo obtém eventos de erro do log de eventos do sistema.
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...
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro EntryType filtra os eventos para mostrar apenas eventos de Erro.
Exemplo 5: Obter eventos de um log de eventos com um valor InstanceId e Source
Este exemplo obtém eventos do log do sistema para um InstanceId e Source específicos.
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...
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro InstanceID seleciona os eventos com a ID de instância especificada. O parâmetro Source especifica a propriedade do evento.
Exemplo 6: Obter eventos de vários computadores
Esse comando obtém os eventos do log de eventos do sistema em três computadores: Server01, Server02 e Server03.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro ComputerName usa uma cadeia de caracteres separada por vírgulas para listar os computadores dos quais você deseja obter os logs de eventos.
Exemplo 7: Obter todos os eventos que incluem uma palavra específica na mensagem
Esse comando obtém todos os eventos no log de eventos do sistema que contêm uma palavra específica na mensagem do evento. É possível que o valor do parâmetro Message especificado esteja incluído no conteúdo da mensagem, mas não seja exibido no console do 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'...
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log de eventos do sistema. O parâmetro Message especifica uma palavra a ser pesquisada no campo de mensagem de cada evento.
Exemplo 8: Exibir os valores de propriedade de um evento
Este exemplo mostra como exibir todas as propriedades e valores de um evento.
$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 :
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log de eventos do sistema. O parâmetro Newest seleciona o objeto de evento mais recente. O objeto é armazenado na $A
variável. O objeto na $A
variável é enviado pelo pipeline para o Select-Object
cmdlet.
Select-Object
usa o parâmetro Property com um asterisco (*
) para selecionar todas as propriedades do objeto.
Exemplo 9: Obter eventos de um log de eventos usando uma fonte e uma ID de evento
Este exemplo obtém eventos para uma Origem e ID de Evento especificadas.
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.
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log de eventos do aplicativo. O parâmetro Source especifica o nome do aplicativo, Outlook. Os objetos são enviados pelo pipeline para o Where-Object
cmdlet. Para cada objeto no pipeline, o Where-Object
cmdlet usa a variável $_.EventID
para comparar a propriedade ID do Evento com o valor especificado. Os objetos são enviados pelo pipeline para o Select-Object
cmdlet. Select-Object
usa o parâmetro Property para selecionar as propriedades a serem exibidas no console do PowerShell.
Exemplo 10: Obter eventos e agrupar por uma propriedade
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
O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro UserName inclui o curinga asterisco (*
) para especificar uma parte do nome de usuário. Os objetos de evento são enviados pelo pipeline para o Group-Object
cmdlet. Group-Object
usa o parâmetro Property para especificar que a propriedade UserName é usada para agrupar os objetos e contar o número de objetos para cada nome de usuário. O parâmetro NoElement remove os membros do grupo da saída. Os objetos são enviados pelo pipeline para o Select-Object
cmdlet.
Select-Object
usa o parâmetro Property para selecionar as propriedades a serem exibidas no console do PowerShell.
Exemplo 11: Obter eventos ocorridos durante um intervalo de data e hora específico
Este exemplo obtém eventos de erro do log de eventos do sistema para um intervalo de data e hora especificado. Os parâmetros Antes e Depois definem o intervalo de data e hora, mas são excluídos da saída.
$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...
O Get-Date
cmdlet usa o parâmetro Date para especificar uma data e hora. Os objetos DateTime são armazenados nas $Begin
variáveis e $End
. O Get-EventLog
cmdlet usa o parâmetro LogName para especificar o log do sistema. O parâmetro EntryType especifica o tipo de evento Error. O intervalo de data e hora é definido pelo parâmetro e variável After e pelo parâmetro $End
e variável Before.$Begin
Parâmetros
-After
Obtém eventos que ocorreram após uma data e hora especificadas. A data e a hora do parâmetro After são excluídas da saída. Insira um objeto DateTime , como o valor retornado pelo Get-Date
cmdlet.
Tipo: | DateTime |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AsBaseObject
Indica que esse cmdlet retorna um objeto System.Diagnostics.EventLogEntry padrão para cada evento. Sem esse parâmetro, Get-EventLog
retorna um objeto PSObject estendido com propriedades adicionais EventLogName, Source e InstanceId.
Para ver o efeito desse parâmetro, canalize os eventos para o Get-Member
cmdlet e examine o valor TypeName no resultado.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AsString
Indica que esse cmdlet retorna a saída como cadeias de caracteres, em vez de objetos.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Before
Obtém eventos que ocorreram antes de uma data e hora especificadas. A data e a hora do parâmetro Antes são excluídas da saída. Insira um objeto DateTime , como o valor retornado pelo Get-Date
cmdlet.
Tipo: | DateTime |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ComputerName
Esse parâmetro especifica o nome NetBIOS de um computador remoto, o endereço IP ou um FQDN (nome de domínio totalmente qualificado).
Se o parâmetro ComputerName não for especificado, Get-EventLog
o padrão será o computador local. O parâmetro também aceita um ponto (.
) para especificar o computador local.
O parâmetro ComputerName não depende da comunicação remota do Windows PowerShell. Você pode usar Get-EventLog
com o parâmetro ComputerName mesmo que o computador não esteja configurado para executar comandos remotos.
Tipo: | String[] |
Aliases: | Cn |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-EntryType
Especifica, como uma matriz de cadeia de caracteres, o tipo de entrada dos eventos que esse cmdlet obtém.
Os valores aceitáveis para esse parâmetro são:
- Erro
- Informações
- Falha de auditoria
- Auditoria de sucesso
- Aviso
Tipo: | String[] |
Aliases: | ET |
Valores aceitos: | Error, Information, FailureAudit, SuccessAudit, Warning |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Index
Especifica os valores de índice a serem obtidos do log de eventos. O parâmetro aceita uma cadeia de caracteres de valores separada por vírgulas.
Tipo: | Int32[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InstanceId
Especifica as IDs de instância a serem obtidas do log de eventos. O parâmetro aceita uma cadeia de caracteres de valores separada por vírgulas.
Tipo: | Int64[] |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-List
Exibe a lista de logs de eventos no computador.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-LogName
Especifica o nome de um log de eventos. Para localizar os nomes dos logs, use Get-EventLog -List
. Caracteres curinga são permitidos. Este parâmetro é obrigatório.
Tipo: | String |
Aliases: | LN |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Message
Especifica uma cadeia de caracteres na mensagem de evento. Você pode usar esse parâmetro para pesquisar mensagens que contenham determinadas palavras ou frases. Caracteres curinga são permitidos.
Tipo: | String |
Aliases: | MSG |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-Newest
Começa com os eventos mais recentes e obtém o número especificado de eventos. O número de eventos é necessário, por exemplo -Newest 100
. Especifica o número máximo de eventos retornados.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Source
Especifica, como uma matriz de cadeia de caracteres, as fontes que foram gravadas no log que esse cmdlet obtém. Caracteres curinga são permitidos.
Tipo: | String[] |
Aliases: | ABO |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
-UserName
Especifica, como uma matriz de cadeia de caracteres, nomes de usuário associados a eventos. Insira nomes ou padrões de nomes, como User01
, User*
, ou Domain01\User*
. Caracteres curinga são permitidos.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | True |
Entradas
None
Não é possível canalizar a entrada para Get-EventLog
.
Saídas
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Se o parâmetro LogName for especificado, a saída será uma coleção de objetos System.Diagnostics.EventLogEntry .
Se apenas o parâmetro List for especificado, a saída será uma coleção de objetos System.Diagnostics.EventLog .
Se os parâmetros List e AsString forem especificados, a saída será uma coleção de objetos System.String .
Observações
Os cmdlets Get-EventLog
e Get-WinEvent
não têm suporte no Ambiente de Pré-Instalação do Windows (Windows PE).