about_Eventlogs

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

TEMA

about_EventLogs

DESCRIPCIÓN BREVE

Windows PowerShell® crea un registro de eventos de Windows que se denomina "Windows PowerShell" para registrar eventos de Windows PowerShell. Puede ver este registro en el Visor de eventos o mediante los cmdlets que reciben eventos, como por ejemplo el cmdlet Get-EventLog. De forma predeterminada, los eventos de proveedor y motor de Windows PowerShell se registran en el registro de eventos, pero puede utilizar las variables de preferencia de registro de eventos para personalizar el registro de eventos. Por ejemplo, puede agregar eventos sobre comandos de Windows PowerShell.

DESCRIPCIÓN LARGA

El registro de eventos de Windows PowerShell registra los detalles de registros de operaciones de Windows PowerShell, como el inicio y detención del motor del programa y el inicio y detención de los proveedores de Windows PowerShell. También puede registrar detalles sobre comandos Windows PowerShell.

El registro de eventos de Windows PowerShell está en el grupo Registros de aplicaciones y servicios. El registro de Windows PowerShell es un registro de eventos clásico que no utiliza la tecnología de Eventos de Windows. Para ver el registro, use los cmdlets diseñados para registros de eventos clásicos, como Get-EventLog.

VISUALIZACIÓN DEL REGISTRO DE EVENTOS DE WINDOWS POWERSHELL

Puede ver el registro de eventos de Windows PowerShell en el Visor de eventos o si usa los cmdlets Get-EventLog y Get-WmiObject. Para ver el contenido del registro de Windows PowerShell, escriba:

  Get-EventLog -LogName "Windows PowerShell"

Para examinar los eventos y sus propiedades, utilice el cmdlet Sort-Object, el cmdlet Group-Object y los cmdlets que contienen el verbo Format (los cmdlets Format).

Por ejemplo, para ver los eventos del registro agrupados por el identificador de evento, escriba:

  Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID

O bien, escriba:

  Get-EventLog "Windows PowerShell" | Sort-Object EventID `
            | Group-Object EventID

Para ver todos los registros de eventos clásicos, escriba:

  Get-EventLog -List

También puede usar el cmdlet Get-WmiObject para utilizar las clases de Instrumental de administración de Windows (WMI) relacionadas con eventos a fin de examinar el registro de eventos. Por ejemplo, para ver todas las propiedades del archivo de registro de eventos, escriba:

  Get-WmiObject Win32_NTEventLogFile | where `
            {$_.LogFileName -eq "Windows PowerShell"} | Format-List -Property * 

Para encontrar las clases de WMI relacionadas con eventos de Win32, escriba:

Get-WmiObject -List | where {$_.Name -like "win32*event*"}

Para más información, escriba "Get-Help Get-EventLog" y "Get-Help Get-WmiObject".

SELECCIÓN DE EVENTOS PARA EL REGISTRO DE EVENTOS DE WINDOWS POWERSHELL

Puede utilizar las variables de preferencia de registro de eventos para determinar los eventos que se deben registrar en el registro de eventos de Windows PowerShell.

Existen seis variables de preferencia de registro de eventos; dos variables para cada uno de los tres componentes de registro: el motor (el programa Windows PowerShell), los proveedores y los comandos. Las variables LifeCycleEvent registran los eventos de inicio y detención normales. Las variables Health registran eventos de error.

En la tabla siguiente se muestran las variables de preferencia de registro de eventos.

          Variable                     Description
          --------------------------   ----------------------------------------

  $LogEngineLifeCycleEvent     Logs starting and stopping of
                                       Windows PowerShell.

  $LogEngineHealthEvent        Logs Windows PowerShell program errors.

  $LogProviderLifeCycleEvent   Logs starting and stopping of 
                                       Windows PowerShell providers.

  $LogProviderHealthEvent      Logs Windows PowerShell provider errors.

  $LogCommandLifeCycleEvent    Logs starting and completion of commands.

  $LogCommandHealthEvent       Logs command errors.

(Para obtener información sobre los proveedores de Windows PowerShell, escriba: "Get-Help about_providers").

De forma predeterminada, se habilitan los siguientes tipos de eventos:

  $LogEngineLifeCycleEvent
  $LogEngineHealthEvent
  $LogProviderLifeCycleEvent
  $LogProviderHealthEvent

Para habilitar un tipo de evento, establezca la variable de preferencia para ese tipo de evento en $true. Por ejemplo, para habilitar los eventos de ciclo de vida de comandos, escriba:

  $LogCommandLifeCycleEvent

O bien, escriba:

  $LogCommandLifeCycleEvent = $true

Para deshabilitar un tipo de evento, establezca la variable de preferencia para ese tipo de evento en $false. Por ejemplo, para deshabilitar los eventos de ciclo de vida de comandos, escriba:

  $LogProviderLifeCycleEvent = $false

Puede deshabilitar cualquier evento, excepto los eventos que indican que se iniciaron los proveedores del núcleo y el motor de Windows PowerShell. Estos eventos se generan antes de que se ejecuten los perfiles de Windows PowerShell y antes de que el programa host esté listo para aceptar comandos.

La configuración de variables solo se aplica en la sesión de Windows PowerShell actual. Para aplicarla a todas las sesiones de Windows PowerShell, agréguelas a su perfil de Windows PowerShell.

EVENTOS DEL MÓDULO DE REGISTRO

A partir de Windows PowerShell 3.0, puede registrar eventos de ejecución para los cmdlets y las funciones en complementos y módulos de Windows PowerShell si establece la propiedad LogPipelineExecutionDetails de los módulos y complementos como $True. En Windows PowerShell 2.0, esta característica solo está disponible para los complementos.

Cuando el valor de la propiedad LogPipelineExecutionDetails es TRUE ($True), Windows PowerShell escribe los eventos de ejecución de funciones y cmdlets de la sesión en el Visor de eventos Windows PowerShell. Esta configuración solo es efectiva en la sesión actual.

Para habilitar el registro de eventos de ejecución de los cmdlets y funciones de un módulo, utilice la siguiente secuencia de comandos.

        Import-Module <ModuleName>
        $m = Get-Module <ModuleName>
        $m.LogPipelineExecutionDetails = $True

Para habilitar el registro de eventos de ejecución de los cmdlets de un complemento, utilice la siguiente secuencia de comandos.

        $m = Get-PSSnapin <SnapInName> [-Registered]
        $m.LogPipelineExecutionDetails = $True

Para deshabilitar el registro, use la misma secuencia de comandos que permite establecer el valor de propiedad en FALSE ($False).

También puede utilizar la configuración de directiva de grupo "Activar registro de módulos" para habilitar y deshabilitar el registro de complementos y módulos. El valor de directiva incluye una lista de nombres de módulos y complementos. Se admiten los caracteres comodín.

Cuando se establece la opción "Activar registro de módulos" para un módulo, el valor de la propiedad LogPipelineExecutionDetails del módulo es TRUE en todas las sesiones y no se puede cambiar.

La configuración de directiva de grupo Activar registro de módulos se encuentra en las siguientes rutas de acceso de directivas de grupo:

        Computer Configuration\Administrative Templates\Windows Components\Windows PowerShell
        User Configuration\Administrative Templates\Windows Components\Windows PowerShell

La directiva Configuración de usuario tiene prioridad sobre la directiva Configuración del equipo, y las dos directivas tienen preferencia sobre el valor de la propiedad LogPipelineExecutionDetails de los módulos y complementos.

Para más información sobre esta configuración de directiva de grupo, consulte about_Group_Policy_Settings (https://go.microsoft.com/fwlink/?LinkID=251696).

SEGURIDAD Y AUDITORÍA

El registro de eventos de Windows PowerShell está diseñado para indicar la actividad y ofrecer detalles operativos para solucionar problemas.

Sin embargo, como la mayoría de registro de eventos de aplicaciones basadas en Windows, el registro de eventos de Windows PowerShell no está diseñado para ser seguro. No debe utilizarse para auditar la seguridad ni para registrar información confidencial o de propiedad.

Los registros de eventos están diseñados para que lo usuarios los lean y los entiendan. Los usuarios pueden leer de y escribir en el registro. Un usuario malintencionado podría leer un registro de eventos en un equipo local o remoto, registrar datos falsos y, después, evitar el registro de sus actividades.

NOTAS

Los creadores de los autores del módulo pueden agregar características de registro a sus módulos. Para más información, consulte "Escribir un módulo de Windows PowerShell" en MSDN, en https://go.microsoft.com/fwlink/?LinkID=144916.

VEA TAMBIÉN

Get-EventLog

Get-WmiObject

about_Group_Policy_Settings

about_Preference_Variables