about_Eventlogs
Korte beschrijving
In dit artikel wordt beschreven hoe PowerShell gebeurtenissen in het Windows-gebeurtenislogboek registreert.
Lange beschrijving
Windows PowerShell maakt een Windows-gebeurtenislogboek met de naam Windows PowerShell om Windows PowerShell-gebeurtenissen vast te leggen. U kunt dit logboek weergeven in Logboeken of met behulp van cmdlets die gebeurtenissen ophalen, zoals de Get-EventLog
cmdlet.
Standaard worden gebeurtenissen van de Windows PowerShell-engine en provider vastgelegd in het gebeurtenislogboek, maar u kunt de voorkeursvariabelen voor gebeurtenislogboeken gebruiken om het gebeurtenislogboek aan te passen. U kunt bijvoorbeeld gebeurtenissen over Windows PowerShell-opdrachten toevoegen.
Het Windows PowerShell-gebeurtenislogboek registreert details van Windows PowerShell-bewerkingen, zoals het starten en stoppen van de programma-engine en het starten en stoppen van de Windows PowerShell-providers. U kunt ook details vastleggen over Windows PowerShell-opdrachten.
Het Windows PowerShell-gebeurtenislogboek weergeven
U kunt het Windows PowerShell-gebeurtenislogboek bekijken in Logboeken of met behulp van de Get-EventLog
en Get-WmiObject
cmdlets. Als u de inhoud van het Windows PowerShell-logboek wilt weergeven, typt u:
Get-EventLog -LogName "Windows PowerShell"
Als u de gebeurtenissen en de bijbehorende eigenschappen wilt onderzoeken, gebruikt u de Sort-Object
cmdlet, de Group-Object
cmdlet en de cmdlets die het Format
werkwoord (de Format
cmdlets) bevatten.
Als u bijvoorbeeld de gebeurtenissen in het logboek wilt weergeven die zijn gegroepeerd op de gebeurtenis-id, typt u:
Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID
Of typ:
Get-EventLog "Windows PowerShell" |
Sort-Object EventID |
Group-Object EventID
Als u alle klassieke gebeurtenislogboeken wilt weergeven, typt u:
Get-EventLog -List
U kunt de Get-WmiObject
cmdlet ook gebruiken om de gebeurtenisgerelateerde WMI-klassen (Windows Management Instrumentation) te gebruiken om het gebeurtenislogboek te onderzoeken. Als u bijvoorbeeld alle eigenschappen van het gebeurtenislogboekbestand wilt weergeven, typt u:
Get-WmiObject Win32_NTEventlogFile |
where LogFileName -EQ "Windows PowerShell" |
Format-List -Property *
Als u de WMI-klassen met betrekking tot Win32-gebeurtenissen wilt vinden, typt u:
Get-WmiObject -List | where Name -Like "Win32*Event*"
Zie Get-EventLog en Get-WmiObject voor meer informatie.
Gebeurtenissen voor het Windows PowerShell-gebeurtenislogboek selecteren
U kunt de voorkeursvariabelen voor gebeurtenislogboeken gebruiken om te bepalen welke gebeurtenissen worden vastgelegd in het Windows PowerShell-gebeurtenislogboek.
Er zijn zes variabelen voor gebeurtenislogboekvoorkeur; twee variabelen voor elk van de drie logboekregistratieonderdelen: de engine (het Windows PowerShell-programma), de providers en de opdrachten. De LifecycleEvent
variabelen registreren normale start- en stop-gebeurtenissen. De Health
-foutenlogboeken van variabelen.
De volgende tabel bevat de variabelen voor gebeurtenislogboekvoorkeur.
Variabele | Beschrijving |
---|---|
$LogEngineLifecycleEvent |
Registreert het starten en stoppen van PowerShell |
$LogEngineHealthEvent |
Registreert PowerShell-programmafouten |
$LogProviderLifecycleEvent |
Registreert het starten en stoppen van PowerShell-providers |
$LogProviderHealthEvent |
Registreert PowerShell-providerfouten |
$LogCommandLifecycleEvent |
Registreert het starten en voltooien van opdrachten |
$LogCommandHealthEvent |
Logboekopdrachtfouten |
(Zie about_Providers voor meer informatie over Windows PowerShell-providers.)
Standaard zijn alleen de volgende gebeurtenistypen ingeschakeld:
$LogEngineLifecycleEvent
$LogEngineHealthEvent
$LogProviderLifecycleEvent
$LogProviderHealthEvent
Als u een gebeurtenistype wilt inschakelen, stelt u de voorkeursvariabele voor dat gebeurtenistype in op $true
. Als u bijvoorbeeld gebeurtenissen voor de levenscyclus van opdrachten wilt inschakelen, typt u:
$LogCommandLifecycleEvent
Of typ:
$LogCommandLifecycleEvent = $true
Als u een gebeurtenistype wilt uitschakelen, stelt u de voorkeursvariabele voor dat gebeurtenistype in op $false
. Als u bijvoorbeeld de levenscyclusgebeurtenissen van opdrachten wilt uitschakelen, typt u:
$LogProviderLifecycleEvent = $false
U kunt elke gebeurtenis uitschakelen, met uitzondering van de gebeurtenissen die aangeven dat de Windows PowerShell-engine en de kernproviders zijn gestart. Deze gebeurtenissen worden gegenereerd voordat de Windows PowerShell-profielen worden uitgevoerd en voordat het hostprogramma klaar is om opdrachten te accepteren.
De variabele-instellingen zijn alleen van toepassing op de huidige Windows PowerShell-sessie. Als u ze wilt toepassen op alle Windows PowerShell-sessies, voegt u deze toe aan uw Windows PowerShell-profiel.
Module-gebeurtenissen vastleggen
Vanaf Windows PowerShell 3.0 kunt u uitvoeringsgebeurtenissen vastleggen voor de cmdlets en functies in Windows PowerShell-modules en -modules door de eigenschap LogPipelineExecutionDetails van modules en modules in te stellen op $true
. In Windows PowerShell 2.0 is deze functie alleen beschikbaar voor modules.
Wanneer de eigenschapswaarde LogPipelineExecutionDetails is$true
, schrijft Windows PowerShell cmdlet- en functieuitvoeringsgebeurtenissen in de sessie naar het Windows PowerShell-logboek in Logboeken. De instelling is alleen van kracht in de huidige sessie.
Gebruik de volgende opdrachtreeks om logboekregistratie van uitvoeringsevenementen van cmdlets en functies in een module in te schakelen.
Import-Module Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$m.LogPipelineExecutionDetails = $true
Als u logboekregistratie van uitvoeringsgebeurtenissen van cmdlets in een module wilt inschakelen, gebruikt u de volgende opdrachtreeks.
$m = Get-PSSnapin Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $true
Als u logboekregistratie wilt uitschakelen, gebruikt u dezelfde opdrachtreeks om de eigenschapswaarde in te stellen op $false
.
U kunt ook de instelling Groepsbeleid voor modulelogboekregistratie inschakelen gebruiken om module- en modulelogboekregistratie in en uit te schakelen. De beleidswaarde bevat een lijst met module- en modulenamen. Jokertekens worden ondersteund.
Wanneer Modulelogboekregistratie inschakelen is ingesteld voor een module, bevindt de waarde van de eigenschap LogPipelineExecutionDetails van de module $true
zich in alle sessies en kan deze niet worden gewijzigd.
De groepsbeleidsinstelling Modulelogboeken inschakelen bevindt zich in de volgende groepsbeleidspaden:
Computer Configuration\
Administrative Templates\
Windows Components\
Windows PowerShell
User Configuration\
Administrative Templates\
Windows Components\
Windows PowerShell
Het beleid voor gebruikersconfiguratie heeft voorrang op het computerconfiguratiebeleid en beide beleidsregels nemen de voorkeur boven de waarde van de eigenschap LogPipelineExecutionDetails van modules en modules.
Zie about_Group_Policy_Settings voor meer informatie over deze groepsbeleidsinstelling.
Beveiliging en controle
Het Windows PowerShell-gebeurtenislogboek is ontworpen om activiteiten aan te geven en operationele details te bieden voor het oplossen van problemen.
Net als bij de meeste windows-toepassingsgebeurtenislogboeken is het Windows PowerShell-gebeurtenislogboek echter niet ontworpen om veilig te zijn. Het mag niet worden gebruikt om de beveiliging te controleren of vertrouwelijke of vertrouwelijke informatie vast te leggen.
Gebeurtenislogboeken zijn ontworpen om te worden gelezen en begrepen door gebruikers. Gebruikers kunnen lezen van en schrijven naar het logboek. Een kwaadwillende gebruiker kan een gebeurtenislogboek lezen op een lokale of externe computer, valse gegevens vastleggen en vervolgens de logboekregistratie van hun activiteiten voorkomen.
Opmerkingen
Auteurs van moduleauteurs kunnen logboekregistratiefuncties toevoegen aan hun modules. Zie Een Windows PowerShell-module schrijven voor meer informatie.