Get-WinEvent
Obtiene eventos de registros de eventos y archivos de registro de seguimiento de eventos en equipos locales y remotos.
Sintaxis
GetLogSet (Es el valor predeterminado).
Get-WinEvent
[[-LogName] <String[]>]
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
ListLogSet
Get-WinEvent
[-ListLog] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[<CommonParameters>]
ListProviderSet
Get-WinEvent
[-ListProvider] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
GetProviderSet
Get-WinEvent
[-ProviderName] <String[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
FileSet
Get-WinEvent
[-Path] <String[]>
[-MaxEvents <Int64>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Oldest]
[<CommonParameters>]
HashQuerySet
Get-WinEvent
[-FilterHashtable] <Hashtable[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[-Oldest]
[<CommonParameters>]
XmlQuerySet
Get-WinEvent
[-FilterXml] <XmlDocument>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Oldest]
[<CommonParameters>]
Description
Este cmdlet solo está disponible en la plataforma Windows.
El cmdlet Get-WinEvent obtiene eventos de los registros de eventos, incluidos los registros clásicos, como los registros de System y Application. 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 seguimiento de eventos para Windows (ETW). De forma predeterminada, Get-WinEvent devuelve información de eventos en el orden de más reciente a más antiguo.
Get-WinEvent enumera los registros de eventos y los proveedores de registros de eventos. Para interrumpir el comando, presione CTRL+C. Puede obtener eventos de los registros seleccionados o de los registros generados por proveedores de eventos seleccionados. Además, puede combinar 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 administrador, 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 Record Count 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 cmdlet Get-WinEvent obtiene información de registro del equipo. El parámetro ListLog usa el 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
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 cmdlet Format-List.
Ejemplo 3: Configuración del registro de seguridad clásico
Este comando obtiene un objeto EventLogConfiguration que representa el registro clásico de Security. 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 cmdlet Get-WinEvent usa el parámetro ListLog para especificar el registro de security de. 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. Se llama de nuevo al cmdlet Get-WinEvent en el registro de security de y se canaliza al cmdlet Format-List 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 Record Count de un registro sea nulo o cero. En el ejemplo se usa la variable $_. Para obtener más información, consulte sobre_Variables_Automáticas.
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 cmdlet Get-WinEvent obtiene información de registro del equipo. El parámetro ListLog usa el comodín asterisco (*) para mostrar información sobre cada registro. El parámetro ComputerName de Where-Object.
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 de Application en tres equipos: Server01, Server02 y Server03. La palabra clave foreach se usa porque el parámetro ComputerName acepta solo un valor. Para obtener más información, vea 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, Server02y Server03. La instrucción foreach usa un bucle para procesar cada servidor, ($Server in $S). El bloque de script de las llaves ({ }) ejecuta el comando Get-WinEvent. El parámetro listLog de $Server para obtener información de registro de cada servidor.
Los objetos se envían a la canalización al cmdlet Select-Object. Format-Table 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 cmdlet Get-WinEvent obtiene información de registro del equipo. El parámetro ListProvider usa el comodín asterisco (*) para mostrar información sobre cada proveedor. En la salida, el nombre de
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 Application.
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
El cmdlet Get-WinEvent 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 Application.
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 cmdlet Get-WinEvent obtiene información de registro del equipo. El parámetro
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 de 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 cmdlet Get-WinEvent obtiene información de registro del equipo. El parámetro listProvider Format-Table.
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 mediante id. de evento y Level.
$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 cmdlet $Event. La propiedad count de $Eventmuestra el número total de eventos registrados.
La variable $Event se envía a la canalización al cmdlet Group-Object.
Group-Object usa el parámetro Property para especificar la propiedad id. de y cuenta los objetos por el valor de id. 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 cmdlet Sort-Object.
La variable $Event se envía a la canalización al cmdlet Group-Object.
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 cmdlet Get-WinEvent 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 cmdlet Group-Object. Format-Table.
Format-Table usa el parámetro AutoSize para dar formato a las columnas. La columna count
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 cmdlet Get-WinEvent 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 cmdlet Get-WinEvent 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 .etl como 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 cmdlet Get-WinEvent 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 para los más recientes. Los objetos se envían por la canalización al cmdlet Sort-ObjectSort-Object ordena los objetos en orden descendente por el valor de la propiedad timeCreated . Los objetos se envían por la canalización al cmdlet Select-Object 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 (.etl) y un archivo de registro de Windows PowerShell archivado (.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
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
El cmdlet Get-WinEvent 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 para los más recientes. Los objetos se envían a la canalización al cmdlet Where-Object.
Where-Object usa un bloque de script para buscar eventos con un identificador de de 403. La variable $_ representa el objeto actual de la canalización y 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 Windows PowerShell.
Los métodos de filtro son más eficaces que usar el cmdlet Where-Object. 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) &lt;= 86400000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) &lt;= 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 Application. La tabla hash usa pares clave-valor . Para obtener más información sobre el parámetro FilterHashtable de
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
El cmdlet $Date.
El cmdlet Get-WinEvent obtiene información de registro. El parámetro FilterHashtable se usa para filtrar la salida. La clave LogName especifica el valor como registro de Application. La clave
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 cmdlet $StartTime.
El cmdlet Get-WinEvent obtiene información de registro. El parámetro FilterHashtable se usa para filtrar la salida. La clave LogName especifica el valor como registro de Application. La clave ProviderName de
Ejemplo 19: Uso de SuppressHashFilter para filtrar errores de aplicación
Al igual que en el ejemplo 16 anterior, en este ejemplo se usa el parámetro FilterHashtable para obtener eventos del registro de Application. Sin embargo, agregamos la clave de SuppressHashFilter para filtrar eventos de nivel de información.
$Date = (Get-Date).AddDays(-2)
$filter = @{
LogName='Application'
StartTime=$Date
SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter
En este ejemplo, Get-WinEvent obtiene todos los eventos del registro de Application durante los últimos dos días, excepto los que tienen un nivel de de 4 (información).
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 solo acepta 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.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | Local computer |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | CN |
Conjuntos de parámetros
GetLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ListLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ListProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
GetProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
HashQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
XmlQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Credential
Especifica una cuenta de usuario que tiene permiso para realizar esta acción. El valor predeterminado es el usuario actual.
Escriba un nombre de usuario, como usuario01 o Domain01\User01. O bien, escriba un objeto de PSCredential, como uno generado por el cmdlet Get-Credential. 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.
Propiedades del parámetro
| Tipo: | PSCredential |
| Valor predeterminado: | Current user |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 con el logName de
y las claves de ProviderName . - Cada clave solo se puede enumerar una vez en cada tabla hash.
- El valor de ruta de acceso toma rutas de acceso a
.etl,.evty.evtxarchivos de registro. - Las claves LogName, ruta de accesoy ProviderName se pueden usar en la misma consulta.
- La clave userID de 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.NT Account válido.
- El valor de Datos toma datos de eventos en un campo sin nombre. Por ejemplo, los eventos de los registros de eventos clásicos.
-
<named-data>clave representa un campo de datos de evento con nombre.
Cuando Get-WinEvent no puede interpretar un par de clave/valor , interpreta la clave como un nombre que distingue mayúsculas de minúsculas para los datos del evento.
Los pares clave-valor válidos Get-WinEvent son los siguientes:
-
=
<String[]>LogName ProviderName de de ruta de acceso de -
palabras clave=
<Long[]> -
id. de=
<Int32[]> nivel de -
startTime=
<DateTime> -
=
<DateTime>EndTime -
userID=
<SID> de datos de <named-data>=<String[]>-
suppressHashFilter=
<Hashtable>
Propiedades del parámetro
| Tipo: | |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
HashQuerySet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 el Visor de eventos de Windows. Use los elementos del cuadro de diálogo para crear una consulta y, a continuación, 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 sobre las características del Visor de eventos, vea 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 de esquema de consulta y la sección Consultas de eventos XML de selección de eventos.
También puede crear un elemento Suppress mediante el parámetro FilterHashtable.
Propiedades del parámetro
| Tipo: | XmlDocument |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
XmlQuerySet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 de referencia de XPath y la sección Filtros de selección de selección de eventos.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
GetLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
GetProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FileSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
Obtiene registros de depuración y análisis, 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 cmdlet Get-WinEvent excluye estos registros a menos que especifique el nombre completo de un registro de depuración o análisis.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
GetLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ListLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
GetProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
HashQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 (*).
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
ListLogSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-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 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 del equipo, use el comodín asterisco (*).
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
ListProviderSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-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 cmdlet Get-WinEvent.
Nota:
PowerShell no limita la cantidad de registros que puede solicitar. Sin embargo, el cmdlet Get-WinEvent 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 bucle de foreach para recorrer en iteración cada registro de la siguiente manera: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.LogName }
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
GetLogSet
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-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 registros o archivos.
Propiedades del parámetro
| Tipo: | Int64 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
GetLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
GetProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FileSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
HashQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
XmlQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Oldest
Indique que este cmdlet obtiene los eventos en orden más antiguo. De forma predeterminada, los eventos se devuelven en el orden más reciente.
Este parámetro es necesario para obtener eventos de .etl y archivos .evt y de registros de depuración y análisis. En estos archivos, los eventos se registran en orden más antiguo y los eventos solo se pueden devolver en orden más antiguo.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
GetLogSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
GetProviderSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
FileSet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
HashQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
XmlQuerySet
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | 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 use caracteres comodín para crear patrones de ruta de acceso de archivo.
Get-WinEvent admite archivos con las extensiones de nombre de archivo .evt, .evtxy .etl. Puede incluir eventos de diferentes archivos y tipos de archivo en el mismo comando.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
| Alias: | PSPath |
Conjuntos de parámetros
FileSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-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 use caracteres comodín para crear patrones de nombre de proveedor.
Un proveedor de registros de eventos es un programa o servicio que escribe eventos en el registro de eventos. No es un proveedor de PowerShell.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | True |
| DontShow: | False |
Conjuntos de parámetros
GetProviderSet
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
String
Puede canalizar un LogName (cadena) a este cmdlet.
XmlDocument
Puede canalizar una consulta de FilterXML a este cmdlet.
Hashtable
Puede canalizar una consulta de 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 cmdlet Get-EventLog en equipos que ejecutan Windows Vista y versiones posteriores de Windows.
Get-EventLog obtiene eventos solo en los registros de eventos clásicos.
Get-EventLog se conserva por compatibilidad con versiones anteriores.
Los cmdlets Get-WinEvent y Get-EventLog no se admiten en el entorno de preinstalación de Windows (Windows PE).