about_Eventlogs

Kort beskrivning

Den här artikeln beskriver hur PowerShell loggar händelser till Windows-händelseloggen.

Lång beskrivning

Windows PowerShell skapar en Windows-händelselogg med namnet "Windows PowerShell" för att registrera Windows PowerShell-händelser. Du kan visa den här loggen i Prikazivač događaja eller med hjälp av cmdletar som hämtar händelser, till exempel cmdletenGet-EventLog. Som standard registreras Windows PowerShell-motor- och providerhändelser i händelseloggen, men du kan använda inställningsvariablerna för händelseloggen för att anpassa händelseloggen. Du kan till exempel lägga till händelser om Windows PowerShell-kommandon.

Händelseloggen i Windows PowerShell innehåller information om Windows PowerShell-åtgärder, till exempel att starta och stoppa programmotorn och starta och stoppa Windows PowerShell-leverantörerna. Du kan också logga information om Windows PowerShell-kommandon.

Visa Windows PowerShell-händelseloggen

Du kan visa Windows PowerShell-händelseloggen i Prikazivač događaja eller med hjälp Get-EventLog av cmdletarna och Get-WmiObject . Om du vill visa innehållet i Windows PowerShell-loggen skriver du:

Get-EventLog -LogName "Windows PowerShell"

Om du vill undersöka händelserna och deras egenskaper använder du cmdleten Sort-Object , cmdleten Group-Object och cmdletarna som innehåller verbet Format Format (cmdletarna).

Om du till exempel vill visa händelserna i loggen grupperade efter händelse-ID:t skriver du:

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

Eller skriv:

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

Om du vill visa alla klassiska händelseloggar skriver du:

Get-EventLog -List

Du kan också använda cmdleten Get-WmiObject för att använda händelserelaterade WMI-klasser (Windows Management Instrumentation) för att undersöka händelseloggen. Om du till exempel vill visa alla egenskaper för händelseloggfilen skriver du:

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

Om du vill hitta win32-händelserelaterade WMI-klasser skriver du:

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

Mer information finns i Get-EventLog och Get-WmiObject.

Välja händelser för Windows PowerShell-händelseloggen

Du kan använda inställningsvariablerna för händelseloggen för att avgöra vilka händelser som registreras i Windows PowerShell-händelseloggen.

Det finns sex inställningsvariabler för händelseloggar. två variabler för var och en av de tre loggningskomponenterna: motorn (Windows PowerShell-programmet), leverantörerna och kommandona. LifeCycleEvent-variabler loggar normala start- och stopphändelser. Felhändelser i loggen För hälsovariabler.

I följande tabell visas variablerna för händelseloggens inställningar.

Olika beskrivning
$LogEngineLifeCycleEvent Loggar start och stopp för PowerShell
$LogEngineHealthEvent Loggar PowerShell-programfel
$LogProviderLifeCycleEvent Loggar start och stopp för PowerShell-leverantörer
$LogProviderHealthEvent Loggar PowerShell-providerfel
$LogCommandLifeCycleEvent Loggar start och slutförande av kommandon
$LogCommandHealthEvent Loggkommandofel

(Information om Windows PowerShell-leverantörer finns i about_Providers.)

Som standard är endast följande händelsetyper aktiverade:

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

Om du vill aktivera en händelsetyp anger du inställningsvariabeln för den händelsetypen till $true. Om du till exempel vill aktivera kommandolivscykelhändelser skriver du:

$LogCommandLifeCycleEvent

Eller skriv:

$LogCommandLifeCycleEvent = $true

Om du vill inaktivera en händelsetyp anger du inställningsvariabeln för den händelsetypen till $false. Om du till exempel vill inaktivera kommandolivscykelhändelser skriver du:

$LogProviderLifeCycleEvent = $false

Du kan inaktivera alla händelser, förutom de händelser som anger att Windows PowerShell-motorn och kärnprovidrar startade. Dessa händelser genererar innan Windows PowerShell-profilerna körs och innan värdprogrammet är redo att acceptera kommandon.

Variabelinställningarna gäller endast för den aktuella Windows PowerShell-sessionen. Om du vill tillämpa dem på alla Windows PowerShell-sessioner lägger du till dem i din Windows PowerShell-profil.

Loggningsmodulhändelser

Från och med Windows PowerShell 3.0 kan du registrera körningshändelser för cmdletar och funktioner i Windows PowerShell-moduler och snapin-moduler genom att ange egenskapen LogPipelineExecutionDetails för moduler och snapin-moduler till $true. I Windows PowerShell 2.0 är den här funktionen endast tillgänglig för snapin-moduler.

När egenskapsvärdet LogPipelineExecutionDetails är $trueskriver Windows PowerShell cmdlet- och funktionskörningshändelser i sessionen till Windows PowerShell-loggen i Prikazivač događaja. Inställningen gäller endast i den aktuella sessionen.

Använd följande kommandosekvens för att aktivera loggning av körningshändelser för cmdletar och funktioner i en modul.

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

Om du vill aktivera loggning av körningshändelser för cmdletar i en snapin-modul använder du följande kommandosekvens.

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

Om du vill inaktivera loggning använder du samma kommandosekvens för att ange egenskapsvärdet till $false.

Du kan också använda inställningen Aktivera grupprincip för modulloggning för att aktivera och inaktivera modul- och snapin-loggning. Principvärdet innehåller en lista över modul- och snapin-namn. Jokertecken stöds.

När Aktivera modulloggning har angetts för en modul finns $true värdet för egenskapen LogPipelineExecutionDetails för modulen i alla sessioner och kan inte ändras.

Grupprincipinställningen "Aktivera modulloggning" finns i följande grupprincipsökvägar:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

Användarkonfigurationsprincipen har företräde framför principen Datorkonfiguration och båda principerna har företräde framför värdet för egenskapen LogPipelineExecutionDetails för moduler och snapin-moduler.

Mer information om den här grupprincipinställningen finns i about_Group_Policy_Settings.

Säkerhet och granskning

Windows PowerShell-händelseloggen är utformad för att indikera aktivitet och för att tillhandahålla driftsinformation för felsökning.

Men precis som de flesta Windows-baserade programhändelseloggar är Windows PowerShell-händelseloggen inte utformad för att vara säker. Den bör inte användas för att granska säkerhet eller för att registrera konfidentiell eller upphovsrättsskyddad information.

Händelseloggar är utformade för att läsas och förstås av användare. Användare kan läsa från och skriva till loggen. En obehörig användare kan läsa en händelselogg på en lokal dator eller fjärrdator, registrera falska data och sedan förhindra loggning av deras aktiviteter.

Kommentar

Författare av modulförfattare kan lägga till loggningsfunktioner i sina moduler. Mer information finns i Skriva en Windows PowerShell-modul.

Se även