Share via


about_Eventlogs

Breve descrição

Este artigo descreve como o PowerShell registra eventos no log de eventos do Windows.

Descrição longa

O Windows PowerShell cria um log de eventos do Windows chamado "Windows PowerShell" para registrar eventos do Windows PowerShell. Você pode exibir esse log no Visualizador de Eventos ou usando cmdlets que obtêm eventos, como o Get-EventLog cmdlet. Por padrão, os eventos do mecanismo e do provedor do Windows PowerShell são registrados no log de eventos, mas você pode usar as variáveis de preferência do log de eventos para personalizar o log de eventos. Por exemplo, você pode adicionar eventos sobre comandos do Windows PowerShell.

O log de eventos do Windows PowerShell registra detalhes das operações do Windows PowerShell, como iniciar e parar o mecanismo do programa e iniciar e parar os provedores do Windows PowerShell. Você também pode registrar detalhes sobre comandos do Windows PowerShell.

Exibindo o log de eventos do Windows PowerShell

Você pode exibir o log de eventos do Windows PowerShell no Visualizador de Eventos ou usando os Get-EventLog cmdlets e Get-WmiObject . Para exibir o conteúdo do log do Windows PowerShell, digite:

Get-EventLog -LogName "Windows PowerShell"

Para examinar os eventos e suas propriedades, use o Sort-Object cmdlet, o Group-Object cmdlet e os cmdlets que contêm o verbo Format (os Format cmdlets).

Por exemplo, para exibir os eventos no log agrupados pela ID do evento, digite:

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

Ou, digite:

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

Para exibir todos os logs de eventos clássicos, digite:

Get-EventLog -List

Você também pode usar o Get-WmiObject cmdlet para usar as classes WMI (Instrumentação de Gerenciamento do Windows) relacionadas a eventos para examinar o log de eventos. Por exemplo, para exibir todas as propriedades do arquivo de log de eventos, digite:

Get-WmiObject Win32_NTEventlogFile |
  where LogFileName -EQ "Windows PowerShell" |
  Format-List -Property *

Para localizar as classes WMI relacionadas a eventos Win32, digite:

Get-WmiObject -List | where Name -Like "win32*event*"

Para obter mais informações, consulte Get-EventLog e Get-WmiObject.

Selecionando eventos para o log de eventos do Windows PowerShell

Você pode usar as variáveis de preferência do log de eventos para determinar quais eventos são registrados no log de eventos do Windows PowerShell.

Há seis variáveis de preferência do log de eventos; duas variáveis para cada um dos três componentes de log: o mecanismo (o programa Windows PowerShell), os provedores e os comandos. As variáveis LifeCycleEvent registram eventos normais de início e parada. As variáveis de integridade registram eventos de erro.

A tabela a seguir lista as variáveis de preferência do log de eventos.

Variável Description
$LogEngineLifeCycleEvent Registra o início e a parada do PowerShell
$LogEngineHealthEvent Registra erros de programa do PowerShell
$LogProviderLifeCycleEvent Registra o início e a interrupção dos provedores do PowerShell
$LogProviderHealthEvent Registra erros do provedor do PowerShell
$LogCommandLifeCycleEvent Registra o início e a conclusão de comandos
$LogCommandHealthEvent Registra erros de comando

(Para obter informações sobre provedores do Windows PowerShell, consulte about_Providers.)

Por padrão, apenas os seguintes tipos de evento são habilitados:

  • $LogEngineLifeCycleEvent
  • $LogEngineHealthEvent
  • $LogProviderLifeCycleEvent
  • $LogProviderHealthEvent

Para habilitar um tipo de evento, defina a variável de preferência para esse tipo de evento como $true. Por exemplo, para habilitar eventos de ciclo de vida do comando, digite:

$LogCommandLifeCycleEvent

Ou, digite:

$LogCommandLifeCycleEvent = $true

Para desativar um tipo de evento, defina a variável de preferência para esse tipo de evento como $false. Por exemplo, para desativar eventos de ciclo de vida do comando, digite:

$LogProviderLifeCycleEvent = $false

Você pode desabilitar qualquer evento, exceto os eventos que indicam que o mecanismo do Windows PowerShell e os provedores principais foram iniciados. Esses eventos são gerados antes da execução dos perfis do Windows PowerShell e antes que o programa host esteja pronto para aceitar comandos.

As configurações de variáveis se aplicam somente à sessão atual do Windows PowerShell. Para aplicá-los a todas as sessões do Windows PowerShell, adicione-os ao seu perfil do Windows PowerShell.

Registrando eventos do módulo

A partir do Windows PowerShell 3.0, você pode registrar eventos de execução para os cmdlets e funções nos módulos e snap-ins do Windows PowerShell definindo a propriedade LogPipelineExecutionDetails dos módulos e snap-ins como $true. No Windows PowerShell 2.0, esse recurso está disponível apenas para snap-ins.

Quando o valor da propriedade LogPipelineExecutionDetails é $true, o Windows PowerShell grava eventos de execução de cmdlet e função na sessão no log do Windows PowerShell no Visualizador de Eventos. A configuração é efetiva somente na sessão atual.

Para habilitar o registro em log de eventos de execução de cmdlets e funções em um módulo, use a seguinte sequência de comandos.

Import-Module Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$m.LogPipelineExecutionDetails = $true

Para habilitar o registro em log de eventos de execução de cmdlets em um snap-in, use a seguinte sequência de comandos.

$m = Get-PSSnapin Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $True

Para desativar o registro em log, use a mesma sequência de comandos para definir o valor da propriedade como $false.

Você também pode usar a configuração de Diretiva de Grupo Ativar Log de Módulo para habilitar e desabilitar o log de módulo e snap-in. O valor da política inclui uma lista de nomes de módulos e snap-ins. Curingas são suportados.

Quando Ativar Log de Módulo é definido para um módulo, o valor da propriedade LogPipelineExecutionDetails do módulo está $true em todas as sessões e não pode ser alterado.

A configuração de diretiva de grupo "Ativar log de módulo" está localizada nos seguintes caminhos de diretiva de grupo:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

A política de Configuração do Usuário tem precedência sobre a política de Configuração do Computador, e ambas as políticas têm preferência sobre o valor da propriedade LogPipelineExecutionDetails dos módulos e snap-ins.

Para obter mais informações sobre essa configuração de Diretiva de Grupo, consulte about_Group_Policy_Settings.

Segurança e Auditoria

O log de eventos do Windows PowerShell foi projetado para indicar a atividade e fornecer detalhes operacionais para a solução de problemas.

No entanto, como a maioria dos logs de eventos de aplicativos baseados no Windows, o log de eventos do Windows PowerShell não foi projetado para ser seguro. Ele não deve ser usado para auditar a segurança ou para registrar informações confidenciais ou proprietárias.

Os logs de eventos são projetados para serem lidos e compreendidos pelos usuários. Os usuários podem ler e gravar no log. Um usuário mal-intencionado pode ler um log de eventos em um computador local ou remoto, registrar dados falsos e, em seguida, impedir o registro de suas atividades.

Notas

Os autores de módulos podem adicionar recursos de registro em log aos seus módulos. Para obter mais informações, consulte Escrevendo um módulo do Windows PowerShell.

Consulte também