Delen via


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. Fout gebeurtenissen in het logboek van statusvariabelen.

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_Instellingen 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.

Zie ook