Dela via


Om händelseloggar

Kort 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 Loggboken eller med hjälp av cmdletar som hämtar händelser, till exempel cmdleten Get-EventLog . Som standard registreras Windows PowerShell motor- och providerhändelser i händelseloggen, men du kan anpassa händelseloggen med hjälp av inställningsvariablerna för händelseloggen. Du kan till exempel lägga till händelser om Windows PowerShell kommandon.

Lång beskrivning

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

Händelseloggen Windows PowerShell finns i gruppen Program- och tjänstloggar. Loggen Windows PowerShell är en klassisk händelselogg som inte använder Windows Eventing-tekniken. Om du vill visa loggen använder du de cmdletar som är utformade för klassiska händelseloggar, till exempel Get-EventLog.

Visa händelseloggen för Windows PowerShell

Du kan visa Windows PowerShell händelseloggen i Loggboken 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 FormatFormat (cmdletarna).

Om du till exempel vill visa händelserna i loggen grupperade efter händelse-ID 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*"

Om du vill ha mer information skriver du "Get-Help Get-EventLog" och "Get-Help Get-WmiObject".

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

Du kan använda händelseloggens inställningsvariabler 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), providrar och kommandon. LifeCycleEvent-variabler loggar normala start- och stopphändelser. Felhändelser för hälsovariabler.

I följande tabell visas inställningsvariablerna för händelseloggen.

Variabel Beskrivning
$LogEngineLifeCycleEvent Loggar start och stopp av PowerShell
$LogEngineHealthEvent Loggar PowerShell-programfel
$LogProviderLifeCycleEvent Loggar start och stopp för PowerShell-providers
$LogProviderHealthEvent Loggar PowerShell-providerfel
$LogCommandLifeCycleEvent Loggar start och slutförande av kommandon
$LogCommandHealthEvent Loggar kommandofel

(Information om Windows PowerShell providrar 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 livscykelhändelser för kommandon 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 livscykelhändelser för kommandon skriver du:

$LogProviderLifeCycleEvent = $false

Du kan inaktivera alla händelser, förutom de händelser som anger att Windows PowerShell-motorn och kärnprovidrar startas. Dessa händelser genereras 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 TRUE ($true), skriver Windows PowerShell cmdlet- och funktionskörningshändelser i sessionen till Windows PowerShell logga in Loggboken. Inställningen gäller endast i den aktuella sessionen.

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

Import-Module <ModuleName>
$m = Get-Module <ModuleName>
$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 <SnapInName> [-Registered]
$m.LogPipelineExecutionDetails = $True

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

Du kan också använda inställningen "Aktivera modulloggning" grupprincip 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 är värdet för egenskapen LogPipelineExecutionDetails för modulen SANT i alla sessioner och kan inte ändras.

Grupprincipinställningen Aktivera modulloggning finns i följande grupprincip sö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 prioriterar över värdet för egenskapen LogPipelineExecutionDetails för moduler och snapin-moduler.

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

Säkerhet och granskning

Händelseloggen Windows PowerShell är utformad för att indikera aktivitet och för att tillhandahålla driftinformation 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.

Kommentarer

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

Se även

Get-EventLog

Get-WmiObject

about_Group_Policy_Settings

about_Preference_Variables