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 Get-EventLog
cmdlet obtiene eventos y registros de eventos de equipos locales y remotos. De forma predeterminada, Get-EventLog
obtiene los registros del equipo local. Para obtener registros de equipos remotos, use el parámetro ComputerName .
Puede usar los parámetros y los Get-EventLog
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 EventLog
nombre 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 Get-WinEvent
cmdlet 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 Get-EventLog
cmdlet usa el parámetro List 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 Get-EventLog
cmdlet 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 Get-EventLog
cmdlet 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 $Events
variable . Los $Events
objetos se envían a la canalización al Group-Object
cmdlet .
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 Sort-Object
cmdlet 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 Get-EventLog
cmdlet 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 Get-EventLog
cmdlet 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 Get-EventLog
cmdlet 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 valor del parámetro Message especificado se incluya en el contenido del mensaje, pero no se muestre 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 Get-EventLog
cmdlet 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 Get-EventLog
cmdlet 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 $A
variable . El objeto de la $A
variable se envía a la canalización al Select-Object
cmdlet .
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 Get-EventLog
cmdlet usa el parámetro LogName para especificar el registro de eventos application. El parámetro Source especifica el nombre de la aplicación, Outlook. Los objetos se envían a la canalización al Where-Object
cmdlet . Para cada objeto de la canalización, el Where-Object
cmdlet 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 Select-Object
cmdlet . 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 Get-EventLog
cmdlet 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 Group-Object
cmdlet . Group-Object
usa el parámetro Property para especificar que la propiedad UserName 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 Select-Object
cmdlet .
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 Get-Date
cmdlet usa el parámetro Date para especificar una fecha y hora. Los objetos DateTime se almacenan en las $Begin
variables y $End
. El Get-EventLog
cmdlet 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 After y $Begin
el parámetro Before y $End
la variable.
Parámetros
-After
Obtiene los eventos que se produjeron después de una fecha y hora especificadas. La fecha y hora del parámetro After se excluyen de la salida. Escriba un objeto DateTime , como el valor devuelto por el Get-Date
cmdlet .
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 System.Diagnostics.EventLogEntry estándar para cada evento. Sin este parámetro, Get-EventLog
devuelve un objeto PSObject extendido con propiedades EventLogName, Source e InstanceId adicionales.
Para ver el efecto de este parámetro, canalice los eventos al Get-Member
cmdlet y examine el valor 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. La fecha y hora del parámetro Before se excluyen de la salida. Escriba un objeto DateTime , como el valor devuelto por el Get-Date
cmdlet .
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 se basa en 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 permitidos para este parámetro son los siguientes:
- 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 permite el uso de 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 los 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 los 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 los 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 , la salida es una colección de objetos System.String .
Notas
Los cmdlets y Get-WinEvent
no se admiten en el entorno de preinstalación Get-EventLog
de Windows (Windows PE).