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 $true
skriver 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.