Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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 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.
Lång beskrivning
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.
Windows PowerShell-händelseloggen finns i gruppen Program- och tjänstloggar. Windows PowerShell-loggen är en klassisk händelselogg som inte använder Windows Eventing-tekniken. Om du vill visa loggen använder du cmdletarna som är utformade för klassiska händelseloggar, till exempel Get-EventLog.
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 FormatFormat (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*"
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 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.
| Variabel | 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 ställer du in inställningsvariabeln för den händelsetypen på $true. Om du till exempel vill aktivera kommandolivscykelhändelser skriver du:
$LogCommandLifeCycleEvent
Eller skriv:
$LogCommandLifeCycleEvent = $true
Om du vill inaktivera en händelsetyp ställer du in inställningsvariabeln för den händelsetypen på $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ärnproviders har startats. 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 cmdlets 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-loggen i Loggboken. 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 <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 grupprincipinställningen "Aktivera 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 är värdet för egenskapen LogPipelineExecutionDetails för modulen TRUE i alla sessioner och det 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.
Noteringar
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.