Compartilhar via


Get-EventLog

Obtém os eventos em um log de eventos, ou uma lista dos logs de eventos, no computador local ou em computadores remotos.

Syntax

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 os valores de Get-EventLog propriedade para pesquisar eventos. O cmdlet obtém eventos que correspondem aos valores de propriedade especificados.

Os cmdlets do PowerShell que contêm o substantivo funcionam somente em logs de eventos clássicos do EventLog 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 quais logs são pesquisados 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 Newest seleciona os 1000 eventos mais recentes. Os objetos de $Events evento são armazenados na 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 origem. 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 Descendente 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 da instância especificada. O parâmetro Source especifica a propriedade do evento.

Exemplo 6: Obter eventos de vários computadores

Este 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 origem 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 seja 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 que ocorreram 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 $Begin e variável After e pelo parâmetro e $End variável Before.

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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsString

Indica que esse cmdlet retorna a saída como cadeias de caracteres, em vez de objetos.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Este 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 se o computador não estiver configurado para executar comandos remotos.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
  • Auditoria de falhas
  • Auditoria de Sucesso
  • Aviso
Type:String[]
Aliases:ET
Accepted values:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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írgula.

Type:Int32[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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írgula.

Type:Int64[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Exibe a lista de logs de eventos no computador.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LogName

Especifica o nome de um log de eventos. Para localizar os nomes de log, use Get-EventLog -List. Caracteres curinga são permitidos. Este parâmetro é obrigatório.

Type:String
Aliases:LN
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:MSG
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:ABO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Entradas

None

Não é possível canalizar a entrada para Get-EventLogo .

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