Get-EventLog
Obtiene los eventos de un registro de eventos, o una lista de los registros de eventos, en el equipo local o en los equipos remotos.
Sintaxis
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
El cmdlet Get-EventLog
obtiene eventos y registros de eventos de equipos locales y remotos. De forma predeterminada, Get-EventLog
obtiene registros del equipo local. Para obtener registros de equipos remotos, use el parámetro ComputerName.
Puede usar los parámetros Get-EventLog
y los valores de propiedad para buscar eventos. El cmdlet obtiene eventos que coinciden con los valores de propiedad especificados.
Los cmdlets de PowerShell que contienen el nombre de EventLog
solo funcionan en registros de eventos clásicos de Windows, como Aplicación, Sistema o Seguridad. Para obtener registros que usan la tecnología registro de eventos de Windows en Windows Vista y versiones posteriores de Windows, use Get-WinEvent
.
Nota
Get-EventLog
usa una API de Win32 que está en desuso. Es posible que los resultados no sean precisos. Use el cmdlet Get-WinEvent
en su lugar.
Ejemplos
Ejemplo 1: Obtención de registros de eventos en el equipo local
En este ejemplo se muestra la lista de registros de eventos que están disponibles en el equipo local. Los nombres de la columna Registro se usan con el parámetro logName para especificar qué registro se busca en 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
El cmdlet Get-EventLog
usa el parámetro list de para mostrar los registros disponibles.
Ejemplo 2: Obtener entradas recientes de un registro de eventos en el equipo local
En este ejemplo se obtienen entradas recientes del registro de eventos del 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...
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro de eventos del sistema. El parámetro Newest devuelve los cinco eventos más recientes.
Ejemplo 3: Buscar todos los orígenes de un número específico de entradas en un registro de eventos
En este ejemplo se muestra cómo buscar todos los orígenes que se incluyen en las 1000 entradas más recientes del registro de eventos del 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
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro más reciente selecciona los 1000 eventos más recientes. Los objetos de evento se almacenan en la variable $Events
. Los objetos $Events
se envían a la canalización al cmdlet Group-Object
.
Group-Object
usa el parámetro Property para agrupar los objetos por origen y cuenta el número de objetos de cada origen. El parámetro NoElement quita los miembros del grupo de la salida.
El cmdlet Sort-Object
usa el parámetro Property para ordenar por el recuento de cada nombre de origen.
El parámetro descendente ordena la lista en orden por recuento de mayor a menor.
Ejemplo 4: Obtener eventos de error de un registro de eventos específico
En este ejemplo se obtienen eventos de error del registro de eventos del 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...
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro EntryType filtra los eventos para mostrar solo los eventos Error.
Ejemplo 5: Obtención de eventos de un registro de eventos con un valor InstanceId y Source
En este ejemplo se obtienen eventos del registro del sistema para un instanceId y un origen 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...
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro InstanceID selecciona los eventos con el identificador de instancia especificado. El parámetro Source especifica la propiedad de evento.
Ejemplo 6: Obtención de eventos de varios equipos
Este comando obtiene los eventos del registro de eventos del sistema en tres equipos: Server01, Server02 y Server03.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro ComputerName usa una cadena separada por comas para enumerar los equipos desde los que desea obtener los registros de eventos.
Ejemplo 7: Obtener todos los eventos que incluyen una palabra específica en el mensaje
Este comando obtiene todos los eventos del registro de eventos del sistema que contienen una palabra específica en el mensaje del evento. Es posible que el message especificado valor del parámetro se incluya en el contenido del mensaje, pero no se muestra en la consola de 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'...
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro de eventos del sistema. El parámetro Message especifica una palabra para buscar en el campo de mensaje de cada evento.
Ejemplo 8: Mostrar los valores de propiedad de un evento
En este ejemplo se muestra cómo mostrar todas las propiedades y valores de un 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 :
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro de eventos del sistema. El parámetro Más reciente selecciona el objeto de evento más reciente. El objeto se almacena en la variable $A
. El objeto de la variable $A
se envía a la canalización al cmdlet Select-Object
.
Select-Object
usa el parámetro Property con un asterisco (*
) para seleccionar todas las propiedades del objeto.
Ejemplo 9: Obtención de eventos de un registro de eventos mediante un origen y un identificador de evento
En este ejemplo se obtienen eventos para un origen y un identificador de evento especificados.
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.
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro de eventos de la aplicación. El parámetro source especifica el nombre de la aplicación, Outlook. Los objetos se envían a la canalización al cmdlet Where-Object
. Para cada objeto de la canalización, el cmdlet Where-Object
usa la variable $_.EventID
para comparar la propiedad Id. de evento con el valor especificado. Los objetos se envían a la canalización al cmdlet Select-Object
.
Select-Object
usa el parámetro Property para seleccionar las propiedades que se van a mostrar en la consola de PowerShell.
Ejemplo 10: Obtener eventos y agrupar por una propiedad
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
El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro UserName incluye el comodín asterisco (*
) para especificar una parte del nombre de usuario. Los objetos de evento se envían a la canalización al cmdlet Group-Object
.
Group-Object
usa el parámetro property para especificar que la propiedad userName de se usa para agrupar los objetos y contar el número de objetos para cada nombre de usuario. El parámetro NoElement quita los miembros del grupo de la salida. Los objetos se envían a la canalización al cmdlet Select-Object
.
Select-Object
usa el parámetro Property para seleccionar las propiedades que se van a mostrar en la consola de PowerShell.
Ejemplo 11: Obtener eventos que se produjeron durante un intervalo de fecha y hora específico
En este ejemplo se obtienen eventos de error del registro de eventos del sistema para un intervalo de fecha y hora especificados. Los parámetros Before y After establecen el intervalo de fecha y hora, pero se excluyen de la salida.
$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...
El cmdlet Get-Date
usa el parámetro Date para especificar una fecha y hora. Los objetos DateTime se almacenan en las variables $Begin
y $End
. El cmdlet Get-EventLog
usa el parámetro LogName para especificar el registro del sistema. El parámetro EntryType especifica el tipo de evento Error. El intervalo de fecha y hora se establece mediante el parámetro After y la variable $Begin
y el parámetro Before y la variable $End
.
Parámetros
-After
Obtiene los eventos que se produjeron después de una fecha y hora especificadas. El Después de fecha y hora del parámetro se excluyen de la salida. Escriba un objeto DateTime, como el valor devuelto por el cmdlet Get-Date
.
Tipo: | DateTime |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AsBaseObject
Indica que este cmdlet devuelve un objeto estándar System.Diagnostics.EventLogEntry para cada evento. Sin este parámetro, Get-EventLog
devuelve un objeto psObject de extendido con propiedades adicionales EventLogName, Sourcey InstanceId.
Para ver el efecto de este parámetro, canalice los eventos al cmdlet Get-Member
y examine el valor de TypeName en el resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AsString
Indica que este cmdlet devuelve la salida como cadenas, en lugar de objetos .
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Before
Obtiene los eventos que se produjeron antes de una fecha y hora especificadas. El Antes de fecha y hora del parámetro se excluyen de la salida. Escriba un objeto DateTime, como el valor devuelto por el cmdlet Get-Date
.
Tipo: | DateTime |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ComputerName
Este parámetro especifica el nombre NetBIOS de un equipo remoto, la dirección del Protocolo de Internet (IP) o un nombre de dominio completo (FQDN).
Si no se especifica el parámetro ComputerName, Get-EventLog
el valor predeterminado es el equipo local. El parámetro también acepta un punto (.
) para especificar el equipo local.
El parámetro ComputerName no depende de la comunicación remota de Windows PowerShell. Puede usar Get-EventLog
con el parámetro computerName incluso si el equipo no está configurado para ejecutar comandos remotos.
Tipo: | String[] |
Alias: | Cn |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-EntryType
Especifica, como matriz de cadenas, el tipo de entrada de los eventos que obtiene este cmdlet.
Los valores aceptables para este parámetro son:
- Error
- Información
- FailureAudit
- SuccessAudit
- Advertencia
Tipo: | String[] |
Alias: | ET |
Valores aceptados: | Error, Information, FailureAudit, SuccessAudit, Warning |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Index
Especifica los valores de índice que se van a obtener del registro de eventos. El parámetro acepta una cadena separada por comas de valores.
Tipo: | Int32[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InstanceId
Especifica los identificadores de instancia que se van a obtener del registro de eventos. El parámetro acepta una cadena separada por comas de valores.
Tipo: | Int64[] |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-List
Muestra la lista de registros de eventos en el equipo.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-LogName
Especifica el nombre de un registro de eventos. Para buscar los nombres de registro, use Get-EventLog -List
. Se permiten caracteres comodín. Este parámetro es obligatorio.
Tipo: | String |
Alias: | LN |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Message
Especifica una cadena en el mensaje de evento. Puede usar este parámetro para buscar mensajes que contengan determinadas palabras o frases. Se permiten caracteres comodín.
Tipo: | String |
Alias: | MSG |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Newest
Comienza con los eventos más recientes y obtiene el número especificado de eventos. El número de eventos es necesario, por ejemplo, -Newest 100
. Especifica el número máximo de eventos que se devuelven.
Tipo: | Int32 |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Source
Especifica, como matriz de cadenas, los orígenes que se escribieron en el registro que obtiene este cmdlet. Se permiten caracteres comodín.
Tipo: | String[] |
Alias: | ABO |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-UserName
Especifica, como matriz de cadenas, nombres de usuario asociados a eventos. Escriba nombres o patrones de nombre, como User01
, User*
o Domain01\User*
. Se permiten caracteres comodín.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
Entradas
None
No se puede canalizar la entrada a Get-EventLog
.
Salidas
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Si se especifica el parámetro LogName, la salida es una colección de objetos System.Diagnostics.EventLogEntry.
Si solo se especifica el parámetro List, la salida es una colección de objetos System.Diagnostics.EventLog.
Si se especifican los parámetros List y AsString, el resultado es una colección de objetos System.String.
Notas
Los cmdlets Get-EventLog
y Get-WinEvent
no se admiten en el entorno de preinstalación de Windows (Windows PE).