Get-WinEvent

Obtiene eventos de registros de eventos y archivos de registro de seguimiento de eventos en equipos locales y remotos.

Syntax

Get-WinEvent
   [[-LogName] <String[]>]
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-ListLog] <String[]>
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-Force]
   [<CommonParameters>]
Get-WinEvent
   [-ListProvider] <String[]>
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [<CommonParameters>]
Get-WinEvent
   [-ProviderName] <String[]>
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-Path] <String[]>
   [-MaxEvents <Int64>]
   [-Credential <PSCredential>]
   [-FilterXPath <String>]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterHashtable] <Hashtable[]>
   [-Force]
   [-Oldest]
   [<CommonParameters>]
Get-WinEvent
   [-MaxEvents <Int64>]
   [-ComputerName <String>]
   [-Credential <PSCredential>]
   [-FilterXml] <XmlDocument>
   [-Oldest]
   [<CommonParameters>]

Description

El Get-WinEvent cmdlet obtiene eventos de los registros de eventos, incluidos los registros clásicos, como los registros del sistema y de la aplicación. El cmdlet obtiene datos de los registros de eventos generados por la tecnología registro de eventos de Windows introducida en Windows Vista y los eventos en los archivos de registro generados por el seguimiento de eventos para Windows (ETW). De forma predeterminada, Get-WinEvent devuelve información de eventos en el orden de más reciente a la más antigua.

Get-WinEvent enumera los registros de eventos y los proveedores de registros de eventos. Para interrumpir el comando, presione CTRL+C. Puede obtener los eventos de los registros seleccionados o de registros generados por los proveedores de eventos seleccionados. Y puede combinar los eventos de varios orígenes en un solo comando. Get-WinEvent permite filtrar eventos mediante consultas XPath, consultas XML estructuradas y consultas de tabla hash.

Si no está ejecutando PowerShell como Administración istrator, es posible que vea mensajes de error que no puede recuperar información sobre un registro.

Ejemplos

Ejemplo 1: Obtener todos los registros de un equipo local

Este comando obtiene todos los registros de eventos en el equipo local. Los registros se muestran en el orden en que Get-WinEvent los obtiene. Los registros clásicos se recuperan primero, seguidos de los nuevos registros de eventos de Windows. Es posible que el valor de RecordCount de un registro sea NULL, que está en blanco o cero.

Get-WinEvent -ListLog *

LogMode   MaximumSizeInBytes RecordCount LogName
-------   ------------------ ----------- -------
Circular            15532032       14500 Application
Circular             1052672         117 Azure Information Protection
Circular             1052672        3015 CxAudioSvcLog
Circular            20971520             ForwardedEvents
Circular            20971520           0 HardwareEvents

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListLog usa el carácter comodín asterisco (*) para mostrar información sobre cada registro.

Ejemplo 2: Obtención del registro de instalación clásico

Este comando obtiene un objeto EventLogConfiguration que representa el registro de instalación clásico. El objeto incluye información sobre el registro, como el tamaño del archivo, el proveedor, la ruta de acceso del archivo y si el registro está habilitado.

Get-WinEvent -ListLog Setup | Format-List -Property *

FileSize                       : 69632
IsLogFull                      : False
LastAccessTime                 : 3/13/2019 09:41:46
LastWriteTime                  : 3/13/2019 09:41:46
OldestRecordNumber             : 1
RecordCount                    : 23
LogName                        : Setup
LogType                        : Operational
LogIsolation                   : Application
IsEnabled                      : True
IsClassicLog                   : False
SecurityDescriptor             : O:BAG:SYD: ...
LogFilePath                    : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes             : 1052672
LogMode                        : Circular
OwningProviderName             : Microsoft-Windows-Eventlog
ProviderNames                  : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel                  :
ProviderKeywords               :
ProviderBufferSize             : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency                : 1000
ProviderControlGuid            :

El Get-WinEvent cmdlet usa el parámetro ListLog para especificar el registro de instalación . El objeto se envía a la canalización al Format-List cmdlet . Format-List usa el parámetro Property con el carácter comodín asterisco (*) para mostrar cada propiedad.

Ejemplo 3: Configuración del registro de seguridad clásico

Este comando obtiene un objeto EventLogConfiguration que representa el registro de seguridad clásico. A continuación, el objeto se usa para configurar las opciones del registro, como el tamaño máximo de archivo, la ruta de acceso del archivo y si el registro está habilitado.

$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
   $log.SaveChanges()
   Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
   $ErrMsg  = 'You do not have permission to configure this log!'
   $ErrMsg += ' Try running this script with administrator privileges. '
   $ErrMsg += $_.Exception.Message
   Write-Error $ErrMsg
}

FileSize                       : 69632
IsLogFull                      : False
LastAccessTime                 : 3/13/2019 09:41:46
LastWriteTime                  : 3/13/2019 09:41:46
OldestRecordNumber             : 1
RecordCount                    : 23
LogName                        : Security
LogType                        : Administrative
LogIsolation                   : Custom
IsEnabled                      : True
IsClassicLog                   : True
SecurityDescriptor             : O:BAG:SYD: ...
LogFilePath                    : %SystemRoot%\System32\Winevt\Logs\Security.evtx
MaximumSizeInBytes             : 1073741824
LogMode                        : Circular
OwningProviderName             :
ProviderNames                  : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel                  :
ProviderKeywords               :
ProviderBufferSize             : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency                : 1000
ProviderControlGuid            :

El Get-WinEvent cmdlet usa el parámetro ListLog para especificar el registro de seguridad . El objeto se guarda en una variable. La propiedad MaximumSizeInBytes se establece en 1 gigabyte en el objeto . Se llama al método SaveChanges para insertar el cambio en el sistema dentro de un bloque try para controlar las infracciones de acceso. El Get-WinEvent cmdlet se llama de nuevo en el registro de seguridad y se canaliza al Format-List cmdlet para comprobar que la propiedad MaximumSizeInBytes se ha guardado en el equipo.

Ejemplo 4: Obtener registros de eventos de un servidor

Este comando solo obtiene los registros de eventos en el equipo local que contienen eventos. Es posible que el valor de RecordCount de un registro sea null o cero. En el ejemplo se usa la $_ variable . Para obtener más información, vea about_Automatic_Variables.

Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }

LogMode   MaximumSizeInBytes RecordCount LogName
-------   ------------------ ----------- -------
Circular            15532032       14546 Application
Circular             1052672         117 Azure Information Protection
Circular             1052672        2990 CxAudioSvcLog
Circular             1052672           9 MSFTVPN Setup
Circular             1052672         282 OAlerts

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListLog usa el carácter comodín asterisco (*) para mostrar información sobre cada registro. El parámetro ComputerName especifica para obtener los registros del equipo local, localhost. Los objetos se envían a la canalización al Where-Object cmdlet . Where-Object usa $_.RecordCount para devolver solo los registros que contienen datos. $_ es una variable que representa el objeto actual de la canalización. RecordCount es una propiedad del objeto con un valor distinto de NULL.

Ejemplo 5: Obtención de registros de eventos de varios servidores

En este ejemplo se obtienen objetos que representan los registros de eventos application en tres equipos: Server01, Server02 y Server03. La palabra clave ForEach se usa porque el parámetro ComputerName solo acepta un valor. Para obtener más información, consulte about_Foreach.

$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
  Get-WinEvent -ListLog Application -ComputerName $Server |
    Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
      @{name='ComputerName'; expression={$Server}} |
    Format-Table -AutoSize
}

LogMode MaximumSizeInBytes RecordCount LogName     ComputerName
 ------- ------------------ ----------- -------     ------------
Circular           15532032       14577 Application Server01
Circular           15532032        9689 Application Server02
Circular           15532032        5309 Application Server03

La variable $S almacena los nombres tres servidores: Server01, Server02 y Server03. La instrucción ForEach usa un bucle para procesar cada servidor, ($Server in $S). El bloque de script de las llaves ({ }) ejecuta el Get-WinEvent comando . El parámetro ListLog especifica el registro de aplicación. El parámetro ComputerName usa la variable $Server para obtener información de registro de cada servidor.

Los objetos se envían a la canalización al Select-Object cmdlet . Select-Object obtiene las propiedades LogMode, MaximumSizeInBytes, RecordCount, LogName y usa una expresión calculada para mostrar ComputerName mediante la $Server variable . Los objetos se envían por la canalización al Format-Table cmdlet para mostrar la salida en la consola de PowerShell. El parámetro AutoSize da formato a la salida para ajustarse a la pantalla.

Ejemplo 6: Obtención de proveedores de registros de eventos y nombres de registro

Este comando obtiene los proveedores de registro de eventos y los registros en los que escriben.

Get-WinEvent -ListProvider *

Name     : .NET Runtime
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListProvider usa el carácter comodín asterisco (*) para mostrar información sobre cada proveedor. En la salida, name es el proveedor y LogLinks es el registro en el que escribe el proveedor.

Ejemplo 7: Obtener todos los proveedores de registro de eventos que escriben en un registro específico

Este comando obtiene todos los proveedores que escriben en el registro de la aplicación .

(Get-WinEvent -ListLog Application).ProviderNames

.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListLog usa Application para obtener objetos para ese registro. ProviderNames es una propiedad del objeto y muestra los proveedores que escriben en el registro de la aplicación .

Ejemplo 8: Obtención de nombres de proveedor de registro de eventos que contienen una cadena específica

Este comando obtiene los proveedores de registro de eventos con nombres que incluyen una cadena específica en el nombre del proveedor.

Get-WinEvent -ListProvider *Policy*

Name     : Group Policy Applications
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : Group Policy Client
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : Group Policy Data Sources
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListProvider usa el carácter comodín asterisco (*) para buscar la directiva en cualquier parte del nombre del proveedor.

Ejemplo 9: Obtención de identificadores de evento que genera el proveedor de eventos

Este comando enumera los identificadores de evento que genera el proveedor de eventos Microsoft-Windows-GroupPolicy junto con la descripción del evento.

(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description

Id  Description
  --  -----------
1500  The Group Policy settings for the computer were processed successfully...
1501  The Group Policy settings for the user were processed successfully...
4115  Group Policy Service started.
4116  Started the Group Policy service initialization phase.
4117  Group Policy Session started.

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro ListProvider especifica el proveedor Microsoft-Windows-GroupPolicy. La expresión se ajusta entre paréntesis y usa la propiedad Events para obtener objetos. Los objetos se envían a la canalización al Format-Table cmdlet . Format-Tablemuestra el identificador y la descripción de los objetos de evento.

Ejemplo 10: Obtener información de registro de las propiedades del objeto de evento

En este ejemplo se muestra cómo obtener información sobre el contenido de un registro mediante propiedades de objeto de evento. Los objetos de evento se almacenan en una variable y, a continuación, se agrupan y cuentan por id . de evento y nivel.

$Event = Get-WinEvent -LogName 'Windows PowerShell'
$Event.Count
$Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
$Event | Group-Object -Property LevelDisplayName -NoElement

195

Count  Name
-----  ----
  147  600
   22  400
   21  601
    3  403
    2  103

Count  Name
-----  ----
    2  Warning
  193  Information

El Get-WinEvent cmdlet usa el parámetro LogName para especificar el registro de eventos de Windows PowerShell . Los objetos de evento se almacenan en la $Event variable . La propiedad Count de $Eventmuestra el número total de eventos registrados.

La $Event variable se envía a la canalización al Group-Object cmdlet . Group-Object usa el parámetro Property para especificar la propiedad Id y cuenta los objetos por el valor del identificador de evento. El parámetro NoElement quita otras propiedades de la salida de los objetos. Los objetos agrupados se envían a la canalización al Sort-Object cmdlet . Sort-Object usa el parámetro Property para ordenar los objetos por Count. El parámetro Descendente muestra la salida por recuento, de mayor a menor. En la salida, la columna Count contiene el número total de cada evento. La columna Nombre contiene los números de identificador de evento agrupados.

La $Event variable se envía a la canalización al Group-Object cmdlet . Group-Object usa el parámetro Property para especificar la propiedad LevelDisplayName y cuenta los objetos por LevelDisplayName. Los objetos se agrupan por los niveles, como Advertencia e Información. El parámetro NoElement quita otras propiedades de la salida. En la salida, la columna Count contiene el número total de cada evento. La columna Nombre contiene el levelDisplayName agrupado.

Ejemplo 11: Obtención de eventos de error que tienen una cadena especificada en su nombre

En este ejemplo se usa una cadena separada por comas de nombres de registro. La salida se agrupa por el nivel, como el error o la advertencia y el nombre del registro.

Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* |
  Group-Object -Property LevelDisplayName, LogName -NoElement |
    Format-Table -AutoSize

Count  Name
-----  ----
    1  Error, PowerShellCore/Operational
   26  Information, Microsoft-Windows-Kernel-WHEA/Operational
  488  Information, Microsoft-Windows-PowerShell/Operational
   77  Information, PowerShellCore/Operational
 9835  Information, Windows PowerShell
   19  Verbose, PowerShellCore/Operational
  444  Warning, Microsoft-Windows-PowerShell/Operational
  512  Warning, PowerShellCore/Operational

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro LogName usa una cadena separada por comas con el comodín asterisco (*) para especificar los nombres de registro. Los objetos se envían a la canalización al Group-Object cmdlet . Group-Object usa el parámetro Property para agrupar los objetos por LevelDisplayName y LogName. El parámetro NoElement quita otras propiedades de la salida. Los objetos agrupados se envían a la canalización al Format-Table cmdlet . Format-Table usa el parámetro AutoSize para dar formato a las columnas. La columna Count contiene el número total de cada evento. La columna Name contiene el LevelDisplayName agrupado y LogName.

Ejemplo 12: Obtención de eventos de un registro de eventos archivado

Get-WinEvent puede obtener información de eventos de los archivos de registro guardados. En este ejemplo se usa un registro de PowerShell archivado que se almacena en el equipo local.

Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'

ProviderName: PowerShell

TimeCreated              Id LevelDisplayName  Message
-----------              -- ----------------  -------
3/15/2019 13:54:13      403 Information       Engine state is changed from Available to Stopped...
3/15/2019 13:54:13      400 Information       Engine state is changed from None to Available...
3/15/2019 13:54:13      600 Information       Provider "Variable" is Started...
3/15/2019 13:54:13      600 Information       Provider "Function" is Started...
3/15/2019 13:54:13      600 Information       Provider "FileSystem" is Started...

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro Path especifica el directorio y el nombre de archivo.

Ejemplo 13: Obtener un número específico de eventos de un registro de eventos archivado

Estos comandos obtienen un número específico de eventos de un registro de eventos archivado. Get-WinEvent tiene parámetros que pueden obtener un número máximo de eventos o los eventos más antiguos. En este ejemplo se usa un registro de PowerShell archivado que se almacena en C:\Test\PowerShellCore Operational.evtx.

Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100

ProviderName: PowerShellCore

TimeCreated                 Id   LevelDisplayName  Message
-----------                 --   ----------------  -------
3/15/2019 09:54:54        4104   Warning           Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13       40962   Information       PowerShell console is ready for user input
3/15/2019 07:56:24        4104   Warning           Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22        40961   Information       PowerShell console is starting up
3/7/2019 10:53:22         8197   Verbose           Runspace state changed to Opening
3/7/2019 10:53:22         8195   Verbose           Opening RunspacePool

El Get-WinEvent cmdlet obtiene información de registro del equipo. El parámetro Path especifica el directorio y el nombre de archivo. El parámetro MaxEvents especifica que se muestran 100 registros, de más recientes a más antiguos.

Ejemplo 14: Seguimiento de eventos para Windows

Seguimiento de eventos para Windows (ETW) escribe eventos en el registro a medida que se producen eventos. Los eventos se almacenan en el orden de más antiguo a más reciente. Un archivo ETW archivado se guarda como un .etlcomo TraceLog.etl. Los eventos se muestran en el orden en que se escriben en el registro, por lo que se requiere el parámetro Más antiguo .

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
  Sort-Object -Property TimeCreated -Descending |
    Select-Object -First 100

El Get-WinEvent cmdlet obtiene información de registro del archivo archivado. El parámetro Path especifica el directorio y el nombre de archivo. El parámetro Más antiguo se usa para generar eventos en el orden en que se escriben, más antiguos a los más recientes. Los objetos se envían por la canalización al Sort-Object cmdlet Sort-Object ordena los objetos en orden descendente por el valor de la propiedad TimeCreated . Los objetos se envían por la canalización al Select-Object cmdlet que muestra los 100 eventos más recientes.

Ejemplo 15: Obtención de eventos de un registro de seguimiento de eventos

En este ejemplo se muestra cómo obtener los eventos de un archivo de registro de seguimiento de eventos () y un archivo de registro de Windows PowerShell archivado.etl (.evtx). Puede combinar varios tipos de archivo en un solo comando. Dado que los archivos contienen el mismo tipo de objeto de .NET Framework , EventLogRecord, puede filtrarlos con las mismas propiedades. El comando requiere el parámetro Más antiguo porque está leyendo desde un .etl archivo, pero el parámetro Más antiguo se aplica a cada archivo.

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
  Where-Object { $_.Id -eq '403' }

El Get-WinEvent cmdlet obtiene información de registro de los archivos archivados. El parámetro Path usa una lista separada por comas para especificar cada directorio de archivos y nombre de archivo. El parámetro Más antiguo se usa para generar eventos en el orden en que se escriben, más antiguos a los más recientes. Los objetos se envían a la canalización al Where-Object cmdlet . Where-Objectusa un bloque de script para buscar eventos con un identificador 403. La $_ variable representa el objeto actual de la canalización e Id es la propiedad Id. de evento.

Ejemplo 16: Filtrar los resultados del registro de eventos

En este ejemplo se muestran diversos métodos para filtrar y seleccionar eventos de un registro de eventos. Todos estos comandos obtienen eventos que se produjeron en las últimas 24 horas desde el registro de eventos de Windows PowerShell . Los métodos de filtro son más eficaces que usar el Where-Object cmdlet . Los filtros se aplican a medida que se recuperan los objetos. Where-Object recupera todos los objetos y, a continuación, aplica filtros a todos los objetos.

# Using the Where-Object cmdlet:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }

# Using the FilterHashtable parameter:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }

# Using the FilterXML parameter:
$xmlQuery = @'
<QueryList>
  <Query Id="0" Path="Windows PowerShell">
    <Select Path="System">*[System[(Level=3) and
        TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select>
  </Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery

# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath

Ejemplo 17: Uso de FilterHashtable para obtener eventos del registro de aplicación

En este ejemplo se usa el parámetro FilterHashtable para obtener eventos del registro de la aplicación . La tabla hash usa pares clave-valor . Para obtener más información sobre el parámetro FilterHashtable , consulte Creación de consultas Get-WinEvent con FilterHashtable. Para obtener más información sobre las tablas hash, consulte about_Hash_Tables.

$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }

El Get-Date cmdlet usa el método AddDays para obtener una fecha que es dos días antes de la fecha actual. El objeto date se almacena en la $Date variable .

El cmdlet obtiene información de Get-WinEvent registro. El parámetro FilterHashtable se usa para filtrar la salida. La clave LogName especifica el valor como registro de aplicación. La clave StartTime usa el valor almacenado en la $Date variable . La clave Id usa un valor de Id. de evento, 1003.

Ejemplo 18: Uso de FilterHashtable para obtener errores de aplicación

En este ejemplo se usa el parámetro FilterHashtable para buscar errores de aplicación de Internet Explorer que se produjeron en la última semana.

$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
  Logname='Application'
  ProviderName='Application Error'
  Data='iexplore.exe'
  StartTime=$StartTime
}

El Get-Date cmdlet usa el método AddDays para obtener una fecha que es siete días antes de la fecha actual. El objeto date se almacena en la $StartTime variable .

El cmdlet obtiene información de Get-WinEvent registro. El parámetro FilterHashtable se usa para filtrar la salida. La clave LogName especifica el valor como registro de aplicación. La clave ProviderName usa el valor Error de la aplicación, que es el origen del evento. La clave de datos usa el valor iexplore.exe La clave StartTime usa el valor almacenado en $StartTime la variable .

Parámetros

-ComputerName

Especifica el nombre del equipo que este cmdlet obtiene eventos de los registros de eventos. Escriba el nombre NetBIOS, una dirección IP o el nombre de dominio completo (FQDN) del equipo. El valor predeterminado es el equipo local, localhost. Este parámetro acepta solo un nombre de equipo a la vez.

Para obtener registros de eventos de equipos remotos, configure el puerto de firewall para el servicio de registro de eventos para permitir el acceso remoto.

Este cmdlet no se basa en la comunicación remota de PowerShell. Puede usar el parámetro ComputerName incluso si el equipo no está configurado para ejecutar comandos remotos.

Type:String
Aliases:Cn
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Especifica una cuenta de usuario con permiso para realizar esta acción. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como User01 o Domain01\User01. O bien, escriba un objeto PSCredential , como uno generado por el Get-Credential cmdlet . Si escribe un nombre de usuario, se le pedirá una contraseña. Si escribe solo el nombre del parámetro, se le pedirá un nombre de usuario y una contraseña.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterHashtable

Especifica una consulta en formato de tabla hash para seleccionar eventos de uno o varios registros de eventos. La consulta contiene una tabla hash con uno o varios pares clave-valor .

Las consultas de tabla hash tienen las siguientes reglas:

  • Las claves y los valores no distinguen mayúsculas de minúsculas.
  • Los caracteres comodín solo son válidos en los valores asociados a las claves LogName y ProviderName .
  • Cada clave solo se puede enumerar una vez en cada tabla hash.
  • El valor ruta de acceso toma rutas de acceso a .etllos archivos de registro , .evty .evtx .
  • Las claves LogName, Path y ProviderName se pueden usar en la misma consulta.
  • La clave UserID puede tomar un identificador de seguridad (SID) válido o un nombre de cuenta de dominio que se puede usar para construir un objeto System.Security.Principal.NTAccount válido.
  • El valor De datos toma datos de evento en un campo sin nombre. Por ejemplo, los eventos de los registros de eventos clásicos.

Cuando Get-WinEvent no se puede interpretar un par clave-valor , interpreta la clave como un nombre que distingue mayúsculas de minúsculas para los datos del evento en el evento.

Los pares clave-valor válidos Get-WinEventson los siguientes:

  • LogName=<String[]>
  • ProviderName=<String[]>
  • Path=<String[]>
  • Palabras clave=<Long[]>
  • ID=<Int32[]>
  • Nivel=<Int32[]>
  • StartTime=<DateTime>
  • EndTime=<DateTime>
  • UserID=<SID>
  • Data=<String[]>
Type:Hashtable[]
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXml

Especifica una consulta XML estructurada que este cmdlet selecciona eventos de uno o varios registros de eventos.

Para generar una consulta XML válida, use las características Crear vista personalizada y Filtrar registro actual en Windows Visor de eventos. Utilice los elementos en el cuadro de diálogo para crear una consulta y, después, haga clic en la pestaña XML para ver la consulta en formato XML. Puede copiar el XML de la pestaña XML en el valor del parámetro FilterXml . Para obtener más información acerca de las características del Visor de eventos, consulte la Ayuda del Visor de eventos.

Use una consulta XML para crear una consulta compleja que contenga varias instrucciones XPath. El formato XML también permite usar un elemento SUPPRESS XML que excluye los eventos de la consulta. Para obtener más información sobre el esquema XML para las consultas de registro de eventos, vea Esquema de consulta y la sección Consultas de eventos XML de selección de eventos.

Type:XmlDocument
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXPath

Especifica una consulta XPath que este cmdlet selecciona eventos de uno o varios registros.

Para obtener más información sobre el lenguaje XPath, vea Referencia de XPath y la sección Filtros de selección.

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

-Force

Obtiene registros analíticos y de depuración, además de otros registros de eventos. El parámetro Force es necesario para obtener un registro de depuración o análisis cuando el valor del parámetro name incluye caracteres comodín.

De forma predeterminada, el Get-WinEvent cmdlet excluye estos registros a menos que especifique el nombre completo de un registro de depuración o análisis.

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

-ListLog

Especifica los registros de eventos. Escriba los nombres de registro de eventos en una lista separada por comas. Se permiten los caracteres comodín. Para obtener todos los registros, use el carácter comodín asterisco (*).

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

-ListProvider

Especifica los proveedores de registro de eventos que obtiene este cmdlet. Un proveedor de registros de eventos es un programa o servicio que escribe los eventos en el registro de eventos.

Escriba los nombres de proveedor en una lista separada por comas. Se permiten los caracteres comodín. Para obtener los proveedores de todos los registros de eventos en el equipo, use el carácter comodín asterisco (*).

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

-LogName

Especifica los registros de eventos de los que este cmdlet obtiene eventos. Escriba los nombres de registro de eventos en una lista separada por comas. Se permiten los caracteres comodín. También puede canalizar los nombres de registro al Get-WinEvent cmdlet.

Nota:

PowerShell no limita la cantidad de registros que puede solicitar. Sin embargo, el Get-WinEvent cmdlet consulta la API de Windows que tiene un límite de 256. Esto puede dificultar el filtrado de todos los registros a la vez. Puede solucionarlo mediante un foreach bucle para recorrer en iteración cada registro de la siguiente manera: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.Logname }

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

-MaxEvents

Especifica el número máximo de eventos que se devuelven. Escriba un entero como 100. El valor predeterminado es devolver todos los eventos de los archivos o registros.

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

-Oldest

Indique que este cmdlet obtiene los eventos en orden más antiguo. De forma predeterminada, los eventos se devuelven con el orden de primero el más reciente.

Este parámetro es necesario para obtener eventos de .etl y .evt archivos y de registros de depuración y análisis. En estos archivos, los eventos se registran con el orden de primero el más antiguo, y solo se pueden devolver con el orden de primero el más antiguo.

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

-Path

Especifica la ruta de acceso a los archivos de registro de eventos de los que este cmdlet obtiene eventos. Escriba las rutas de acceso a los archivos de registro en una lista separada por comas o utilice caracteres comodín para crear patrones de ruta de acceso a los archivos.

Get-WinEvent admite archivos con las .evtextensiones de nombre de archivo , .evtxy .etl . Puede incluir eventos de distintos archivos y tipos de archivo en el mismo comando.

Type:String[]
Aliases:PSPath
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-ProviderName

Especifica, como matriz de cadenas, los proveedores de registro de eventos de los que este cmdlet obtiene eventos. Escriba los nombres de proveedor en una lista separada por comas o utilice caracteres comodín para crear patrones de nombre de proveedor.

Un proveedor de registros de eventos es un programa o servicio que escribe los eventos en el registro de eventos. No es un proveedor de PowerShell.

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

Entradas

String

Puede canalizar un logName (cadena) a este cmdlet.

XmlDocument

Puede canalizar una consulta FilterXML a este cmdlet.

Hashtable

Puede canalizar una consulta FilterHashtable a este cmdlet.

Salidas

EventLogConfiguration

Con el parámetro ListLog , este cmdlet devuelve objetos EventLogConfiguration .

EventLogRecord

De forma predeterminada, este cmdlet devuelve objetos EventLogRecord .

ProviderMetadata

Con el parámetro ListProvider , este cmdlet devuelve objetos ProviderMetadata .

Notas

Get-WinEvent está diseñado para reemplazar el Get-EventLog cmdlet en equipos que ejecutan Windows Vista y versiones posteriores de Windows. Get-EventLog obtiene los eventos solo en los registros de eventos clásicos. La clase Get-EventLog se conserva por razones de compatibilidad con versiones anteriores.

Los Get-WinEvent cmdlets y Get-EventLog no se admiten en el entorno de preinstalación de Windows (Windows PE).