about_Eventlogs

Descrizione breve

Questo articolo descrive in che modo PowerShell registra gli eventi nel registro eventi di Windows.

Descrizione lunga

Windows PowerShell crea un registro eventi di Windows denominato "Windows PowerShell" per registrare gli eventi di Windows PowerShell. È possibile visualizzare questo log in Visualizzatore eventi o usando i cmdlet che ottengono eventi, ad esempio il Get-EventLog cmdlet . Per impostazione predefinita, gli eventi del motore e del provider di Windows PowerShell vengono registrati nel registro eventi, ma è possibile usare le variabili di preferenza del registro eventi per personalizzare il registro eventi. Ad esempio, è possibile aggiungere eventi sui comandi di Windows PowerShell.

Il registro eventi di Windows PowerShell registra i dettagli delle operazioni di Windows PowerShell, ad esempio l'avvio e l'arresto del motore di programma e l'avvio e l'arresto dei provider di Windows PowerShell. È anche possibile registrare i dettagli sui comandi di Windows PowerShell.

Visualizzazione del registro eventi di Windows PowerShell

È possibile visualizzare il registro eventi di Windows PowerShell in Visualizzatore eventi o usando i Get-EventLog cmdlet e Get-WmiObject . Per visualizzare il contenuto del log di Windows PowerShell, digitare:

Get-EventLog -LogName "Windows PowerShell"

Per esaminare gli eventi e le relative proprietà, usare il Sort-Object cmdlet , il Group-Object cmdlet e i cmdlet che contengono il Format verbo (i Format cmdlet).

Ad esempio, per visualizzare gli eventi nel log raggruppati in base all'ID evento, digitare:

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

In alternativa, digitare:

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

Per visualizzare tutti i log eventi classici, digitare:

Get-EventLog -List

È anche possibile usare il Get-WmiObject cmdlet per usare le classi WMI (Windows Management Instrumentation) correlate agli eventi per esaminare il registro eventi. Ad esempio, per visualizzare tutte le proprietà del file di registro eventi, digitare:

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

Per trovare le classi WMI correlate agli eventi Win32, digitare:

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

Per altre informazioni, vedere Get-EventLog e Get-WmiObject.

Selezione di eventi per il registro eventi di Windows PowerShell

È possibile usare le variabili delle preferenze del registro eventi per determinare quali eventi vengono registrati nel registro eventi di Windows PowerShell.

Esistono sei variabili di preferenza del registro eventi; due variabili per ognuno dei tre componenti di registrazione: il motore (il programma Windows PowerShell), i provider e i comandi. Le variabili LifeCycleEvent registrano eventi di avvio e arresto normali. Le variabili di integrità registrano gli eventi di errore.

Nella tabella seguente sono elencate le variabili di preferenza del registro eventi.

Variabile Descrizione
$LogEngineLifeCycleEvent Registra l'avvio e l'arresto di PowerShell
$LogEngineHealthEvent Registra gli errori del programma PowerShell
$LogProviderLifeCycleEvent Registra l'avvio e l'arresto dei provider di PowerShell
$LogProviderHealthEvent Registra gli errori del provider PowerShell
$LogCommandLifeCycleEvent Registra l'avvio e il completamento dei comandi
$LogCommandHealthEvent Registra gli errori dei comandi

Per informazioni sui provider di Windows PowerShell, vedere about_Providers.

Per impostazione predefinita, sono abilitati solo i tipi di evento seguenti:

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

Per abilitare un tipo di evento, impostare la variabile di preferenza per il tipo di evento su $true. Ad esempio, per abilitare gli eventi del ciclo di vita dei comandi, digitare:

$LogCommandLifeCycleEvent

In alternativa, digitare:

$LogCommandLifeCycleEvent = $true

Per disabilitare un tipo di evento, impostare la variabile di preferenza per il tipo di evento su $false. Ad esempio, per disabilitare gli eventi del ciclo di vita dei comandi, digitare:

$LogProviderLifeCycleEvent = $false

È possibile disabilitare qualsiasi evento, ad eccezione degli eventi che indicano che il motore di Windows PowerShell e i provider di base sono stati avviati. Questi eventi vengono generati prima dell'esecuzione dei profili di Windows PowerShell e prima che il programma host sia pronto per accettare i comandi.

Le impostazioni delle variabili si applicano solo per la sessione di Windows PowerShell corrente. Per applicarle a tutte le sessioni di Windows PowerShell, aggiungerle al profilo di Windows PowerShell.

Eventi del modulo di registrazione

A partire da Windows PowerShell 3.0, è possibile registrare gli eventi di esecuzione per i cmdlet e le funzioni nei moduli e negli snap-in di Windows PowerShell impostando la proprietà LogPipelineExecutionDetails di moduli e snap-in su $true. In Windows PowerShell 2.0 questa funzionalità è disponibile solo per gli snap-in.

Quando il valore della proprietà LogPipelineExecutionDetails è $true, Windows PowerShell scrive eventi di esecuzione di cmdlet e funzioni nella sessione nel log di Windows PowerShell in Visualizzatore eventi. L'impostazione è effettiva solo nella sessione corrente.

Per abilitare la registrazione degli eventi di esecuzione di cmdlet e funzioni in un modulo, usare la sequenza di comando seguente.

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

Per abilitare la registrazione degli eventi di esecuzione dei cmdlet in uno snap-in, usare la sequenza di comando seguente.

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

Per disabilitare la registrazione, usare la stessa sequenza di comandi per impostare il valore della proprietà su $false.

È anche possibile usare l'impostazione Attiva criteri di gruppo Registrazione moduli per abilitare e disabilitare la registrazione di moduli e snap-in. Il valore dei criteri include un elenco di nomi di modulo e snap-in. Sono supportati caratteri jolly.

Quando è impostata l'opzione Attiva registrazione moduli per un modulo, il valore della proprietà LogPipelineExecutionDetails del modulo si trova $true in tutte le sessioni e non può essere modificato.

L'impostazione di criteri di gruppo "Attiva registrazione moduli" si trova nei percorsi di Criteri di gruppo seguenti:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

I criteri configurazione utente hanno la precedenza sui criteri configurazione computer e entrambi i criteri hanno la preferenza sul valore della proprietà LogPipelineExecutionDetails dei moduli e degli snap-in.

Per altre informazioni su questa impostazione di Criteri di gruppo, vedere about_Group_Policy_Impostazioni.

Sicurezza e controllo

Il registro eventi di Windows PowerShell è progettato per indicare l'attività e fornire dettagli operativi per la risoluzione dei problemi.

Tuttavia, come la maggior parte dei registri eventi delle applicazioni basate su Windows, il registro eventi di Windows PowerShell non è progettato per essere sicuro. Non deve essere usato per controllare la sicurezza o per registrare informazioni riservate o proprietarie.

I log eventi sono progettati per essere letti e compresi dagli utenti. Gli utenti possono leggere e scrivere nel log. Un utente malintenzionato potrebbe leggere un registro eventi in un computer locale o remoto, registrare dati falsi e quindi impedire la registrazione delle attività.

Note

Gli autori di moduli possono aggiungere funzionalità di registrazione ai moduli. Per altre informazioni, vedere Scrittura di un modulo di Windows PowerShell.

Vedi anche