about_Logging

Descrizione breve

PowerShell registra le operazioni interne dal motore, dai provider e dai cmdlet al registro eventi di Windows.

Descrizione lunga

PowerShell registra informazioni dettagliate sulle operazioni di PowerShell, ad esempio l'avvio e l'arresto del motore e dei provider e l'esecuzione di comandi di PowerShell.

Nota

Windows PowerShell 5.1 (e versioni precedenti) includono i cmdlet EventLog per i registri eventi di Windows. In queste versioni, per visualizzare l'elenco dei cmdlet EventLog digitare: Get-Command -Noun EventLog. Per altre informazioni, vedere la documentazione del cmdlet e about_EventLogs per la versione di Windows PowerShell.

Per informazioni sulla registrazione in PowerShell 7, vedere gli articoli seguenti:

Visualizzazione delle voci del registro eventi di PowerShell in Windows

I log di PowerShell possono essere visualizzati usando windows Visualizzatore eventi. Il registro eventi si trova nel gruppo Registri applicazioni e servizi ed è denominato Microsoft-Windows-PowerShell. Il provider GUID ETW associato è {A0C1853B-5C40-4B15-8766-3CF1C58F985A}.

Quando la registrazione blocchi di script è abilitata, PowerShell registra gli eventi seguenti nel log di Microsoft-Windows-PowerShell/Operational :

Campo valore
EventId 4104 / 0x1008
Channel Operational
Level Verbose
Opcode Create
Attività CommandStart
Parola chiave Runspace

Abilitazione della registrazione blocchi di script

Quando si abilita la registrazione blocco di script, PowerShell registra il contenuto di tutti i blocchi di script elaborati. Dopo l'abilitazione, qualsiasi nuova sessione di PowerShell registra queste informazioni.

Nota

Per assicurarsi che i dati sensibili siano protetti, abilitare La registrazione eventi protetta quando si usa la registrazione di blocchi di script per scopi diversi dalla diagnostica.

La registrazione blocco script può essere abilitata tramite Criteri di gruppo o un'impostazione del Registro di sistema.

Utilizzando criteri di gruppo

Per abilitare la trascrizione automatica, abilitare la funzionalità Attiva registrazione blocchi script di PowerShell in Criteri di gruppo tramite modelli Amministrazione istrativi ->Componenti di Windows ->Windows PowerShell.

Usare il Registro di sistema

Eseguire la funzione seguente:

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"
}

Registrazione eventi protetta

L'aumento del livello di registrazione in un sistema aumenta la possibilità che il contenuto registrato possa contenere dati sensibili. Ad esempio, con la registrazione degli script abilitata, le credenziali o altri dati sensibili usati da uno script possono essere scritti nel registro eventi. Quando un computer che ha registrato dati sensibili viene compromesso, i log possono fornire a un utente malintenzionato informazioni necessarie per estendere la copertura.

Per proteggere queste informazioni, Windows 10 introduce la registrazione eventi protetta. La registrazione eventi protetta consente alle applicazioni partecipanti di crittografare i dati sensibili scritti nel registro eventi. Successivamente, è possibile decrittografare ed elaborare questi log in un agente di raccolta log più sicuro e centralizzato.

Il contenuto del registro eventi è protetto usando lo standard IETF Cryptographic Message Syntax (CMS). CMS usa la crittografia a chiave pubblica. Le chiavi usate per crittografare il contenuto e decrittografare il contenuto vengono mantenute separate.

La chiave pubblica può essere condivisa ampiamente e non è dati sensibili. Qualsiasi contenuto crittografato con questa chiave pubblica può essere decrittografato solo dalla chiave privata. Per altre informazioni sulla crittografia a chiave pubblica, vedere Wikipedia - Crittografia a chiave pubblica.

Per abilitare i criteri di registrazione eventi protetti, distribuire una chiave pubblica in tutti i computer con dati del registro eventi da proteggere. La chiave privata corrispondente viene usata per post-elaborare i registri eventi in una posizione più sicura, ad esempio un agente di raccolta registri eventi centrale o un aggregatore SIEM . È possibile configurare SIEM in Azure. Per altre informazioni, vedere Integrazione SIEM generica.

Abilitazione della registrazione eventi protetta tramite Criteri di gruppo

Per abilitare la registrazione eventi protetta, abilitare la Enable Protected Event Logging funzionalità in Criteri di gruppo tramite Administrative Templates -> Windows Components -> Event Logging. Questa impostazione richiede un certificato di crittografia, che è possibile fornire in una delle diverse forme:

  • Contenuto di un certificato X.509 codificato in base 64( ad esempio, come offerto dall'opzione Export in Gestione certificati).
  • Identificazione personale di un certificato disponibile nell'archivio certificati Computer locale (può essere distribuita dall'infrastruttura PKI).
  • Percorso completo di un certificato (può essere locale o una condivisione remota).
  • Percorso di una directory contenente un certificato o un certificato (può essere locale o una condivisione remota).
  • Nome soggetto di un certificato disponibile nell'archivio certificati Computer locale (può essere distribuito dall'infrastruttura PKI).

Il certificato risultante deve avere Document Encryption come utilizzo chiavi avanzato (1.3.6.1.4.1.311.80.1) e Data Encipherment gli utilizzi delle chiavi o Key Encipherment abilitati.

Avviso

La chiave privata non deve essere distribuita nei computer che registrano gli eventi. Deve essere mantenuto in una posizione sicura in cui decrittografare i messaggi.

Decrittografia dei messaggi di registrazione eventi protetti

Lo script seguente recupera e decrittografa gli eventi, presupponendo che la chiave privata sia disponibile:

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

Vedi anche