Partilhar via


about_Logging

Breve descrição

O PowerShell registra operações internas do mecanismo, provedores e cmdlets no log de eventos do Windows.

Descrição longa

O PowerShell registra detalhes sobre as operações do PowerShell, como iniciar e parar o mecanismo e os provedores e executar comandos do PowerShell.

Nota

O Windows PowerShell 5.1 (e mais antigo) inclui cmdlets EventLog para os logs de eventos do Windows. Nessas versões, para exibir a lista de cmdlets EventLog , digite: Get-Command -Noun EventLog. Para obter mais informações, consulte a documentação e o about_EventLogs do cmdlet para sua versão do Windows PowerShell.

Para obter informações sobre como fazer logon no PowerShell 7, consulte os seguintes artigos:

Exibindo as entradas do log de eventos do PowerShell no Windows

Os logs do PowerShell podem ser exibidos usando o Visualizador de Eventos do Windows. O log de eventos está localizado no grupo Logs de Aplicativos e Serviços e é chamado Microsoft-Windows-PowerShell. O provedor GUID ETW associado é {A0C1853B-5C40-4B15-8766-3CF1C58F985A}.

Quando o Log de Bloqueio de Script está habilitado, o PowerShell registra os seguintes eventos no log Microsoft-Windows-PowerShell /Operacional :

Campo Value
EventId 4104 / 0x1008
Canal Operational
Level Verbose
Opcode Create
Task CommandStart
Palavra-chave Runspace

Ativando o log de blocos de script

Quando você habilita o Log de Blocos de Script, o PowerShell registra o conteúdo de todos os blocos de script que processa. Uma vez habilitada, qualquer nova sessão do PowerShell registra essas informações.

Nota

Para garantir que os dados confidenciais estejam protegidos, habilite o Log de Eventos Protegidos ao usar o Log de Bloqueio de Script para qualquer outra finalidade que não seja de diagnóstico.

O Registo de Blocos de Scripts pode ser ativado através da Política de Grupo ou de uma definição de registo.

Utilizar a Política de Grupo

Para habilitar a transcrição automática, habilite o recurso Ativar Log de Bloqueio de Script do PowerShell na Política de Grupo por meio de Modelos Administrativos ->Componentes do Windows ->Windows PowerShell.

Utilizar o Registo

Execute a seguinte função:

function Enable-PSScriptBlockLogging {
    $basePath = @(
        'HKLM:\Software\Policies\Microsoft\Windows'
        'PowerShell\ScriptBlockLogging'
    ) -join '\'

    if (-not (Test-Path $basePath)) {
        $null = New-Item $basePath -Force
    }

    Set-ItemProperty $basePath -Name EnableScriptBlockLogging -Value "1"
}

Registo de Eventos Protegido

Aumentar o nível de registro em um sistema aumenta a possibilidade de que o conteúdo registrado possa conter dados confidenciais. Por exemplo, com o log de scripts habilitado, as credenciais ou outros dados confidenciais usados por um script podem ser gravados no log de eventos. Quando uma máquina que registrou dados confidenciais é comprometida, os logs podem fornecer a um invasor as informações necessárias para estender seu alcance.

Para proteger essas informações, o Windows 10 introduz o Log de Eventos Protegido. O Log de Eventos Protegido permite que os aplicativos participantes criptografem dados confidenciais gravados no log de eventos. Mais tarde, você pode descriptografar e processar esses logs em um coletor de logs mais seguro e centralizado.

O conteúdo do log de eventos é protegido usando o padrão CMS (Cryptographic Message Syntax) IETF. O CMS usa criptografia de chave pública. As chaves usadas para encriptar conteúdo e desencriptar conteúdo são mantidas separadas.

A chave pública pode ser compartilhada amplamente e não são dados confidenciais. Qualquer conteúdo encriptado com esta chave pública só pode ser desencriptado pela chave privada. Para obter mais informações sobre Criptografia de Chave Pública, consulte Wikipedia - Criptografia de Chave Pública.

Para habilitar uma política de Log de Eventos Protegido, implante uma chave pública em todas as máquinas que tenham dados de log de eventos para proteger. A chave privada correspondente é usada para pós-processar os logs de eventos em um local mais seguro, como um coletor de log de eventos central ou agregador SIEM . Você pode configurar o SIEM no Azure. Para obter mais informações, consulte Integração SIEM genérica.

Habilitando o log de eventos protegidos por meio da Diretiva de Grupo

Para habilitar o Log de Eventos Protegidos, habilite o recurso na Diretiva de Grupo por meio do Enable Protected Event LoggingAdministrative Templates -> Windows Components -> Event Logging. Essa configuração requer um certificado de criptografia, que você pode fornecer de várias formas:

  • O conteúdo de um certificado X.509 codificado em base 64 (por exemplo, conforme oferecido pela Export opção no Gerenciador de certificados).
  • A impressão digital de um certificado que pode ser encontrado no armazenamento de certificados do Computador Local (pode ser implantado pela infraestrutura PKI).
  • O caminho completo para um certificado (pode ser local ou remoto).
  • O caminho para um diretório que contém um certificado ou certificados (pode ser local ou um compartilhamento remoto).
  • O nome do assunto de um certificado que pode ser encontrado no armazenamento de certificados do Computador Local (pode ser implantado pela infraestrutura PKI).

O certificado resultante deve ter Document Encryption como um uso de chave aprimorado (1.3.6.1.4.1.311.80.1) e um ou Key Encipherment usos Data Encipherment de chave habilitados.

Aviso

A chave privada não deve ser implantada nas máquinas registrando eventos. Deve ser mantido num local seguro onde desencripta as mensagens.

Desencriptação de mensagens de Registo de Eventos Protegidos

O script a seguir recupera e descriptografa eventos, supondo que você tenha a chave privada:

Get-WinEvent Microsoft-Windows-PowerShell/Operational |
    Where-Object Id -eq 4104 |
    Unprotect-CmsMessage

Consulte também