Over eventlogs
Korte 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 Windows PowerShell engine- en provider-gebeurtenissen vastgelegd in het gebeurtenislogboek, maar u kunt de voorkeursvariabelen voor het gebeurtenislogboek gebruiken om het gebeurtenislogboek aan te passen. U kunt bijvoorbeeld gebeurtenissen over Windows PowerShell opdrachten toevoegen.
Lange beschrijving
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 over Windows PowerShell opdrachten vastleggen.
Het Windows PowerShell gebeurtenislogboek bevindt zich in de groep Logboeken toepassing en services. Het Windows PowerShell-logboek is een klassiek gebeurtenislogboek dat geen gebruik maakt van de Windows Eventing-technologie. Als u het logboek wilt weergeven, gebruikt u de cmdlets die zijn ontworpen voor klassieke gebeurtenislogboeken, zoals Get-EventLog
.
Het gebeurtenislogboek van de Windows PowerShell weergeven
U kunt het Windows PowerShell gebeurtenislogboek weergeven in Logboeken of met behulp van de Get-EventLog
cmdlets enGet-WmiObject
. Als u de inhoud van het Windows PowerShell logboek wilt weergeven, typt u:
Get-EventLog -LogName "Windows PowerShell"
Als u de gebeurtenissen en hun 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, 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 controleren. 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 Win32-gebeurtenisgerelateerde WMI-klassen wilt vinden, typt u:
Get-WmiObject -List | where Name -Like "win32*event*"
Typ 'Get-Help Get-EventLog' en 'Get-Help Get-WmiObject' voor meer informatie.
Gebeurtenissen selecteren voor het Windows PowerShell gebeurtenislogboek
U kunt de voorkeursvariabelen voor gebeurtenislogboeken gebruiken om te bepalen welke gebeurtenissen worden vastgelegd in het Windows PowerShell gebeurtenislogboek.
Er zijn zes voorkeursvariabelen voor gebeurtenislogboeken; twee variabelen voor elk van de drie logboekregistratieonderdelen: de engine (het Windows PowerShell-programma), de providers en de opdrachten. De LifeCycleEvent-variabelen registreren normale gebeurtenissen voor starten en stoppen. De statusvariabelen registreren foutgebeurtenissen.
De volgende tabel bevat de voorkeursvariabelen voor gebeurtenislogboeken.
Variabele | Beschrijving |
---|---|
$LogEngineLifeCycleEvent | Registreert het starten en stoppen van PowerShell |
$LogEngineHealthEvent | Registreert PowerShell-programmafouten |
$LogProviderLifeCycleEvent | Registreert het begin en einde van PowerShell-providers |
$LogProviderHealthEvent | Registreert fouten met PowerShell-providers |
$LogCommandLifeCycleEvent | Registreert het starten en voltooien van opdrachten |
$LogCommandHealthEvent | Logboekopdrachtfouten |
(Zie about_Providers voor 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 levenscyclusgebeurtenissen 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 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 gereed 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 ze toe aan uw Windows PowerShell-profiel.
Module-gebeurtenissen in logboekregistratie
Vanaf Windows PowerShell 3.0 kunt u uitvoeringsgebeurtenissen voor de cmdlets en functies in Windows PowerShell modules en modules vastleggen 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 TRUE () 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 <ModuleName>
$m = Get-Module <ModuleName>
$m.LogPipelineExecutionDetails = $true
Gebruik de volgende opdrachtreeks om logboekregistratie van uitvoeringsgebeurtenissen van cmdlets in een module in te schakelen.
$m = Get-PSSnapin <SnapInName> [-Registered]
$m.LogPipelineExecutionDetails = $True
Als u logboekregistratie wilt uitschakelen, gebruikt u dezelfde opdrachtreeks om de eigenschapswaarde in te stellen op FALSE ($false
).
U kunt ook de groepsbeleid instelling '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, is de waarde van de eigenschap LogPipelineExecutionDetails van de module WAAR in alle sessies en kan deze niet worden gewijzigd.
De groepsbeleidsinstelling Modulelogboekregistratie inschakelen bevindt zich in de volgende groepsbeleid paden:
Computer Configuration\
Administrative Templates\
Windows Components\
Windows PowerShell
User Configuration\
Administrative Templates\
Windows Components\
Windows PowerShell
Het gebruikersconfiguratiebeleid heeft voorrang op het computerconfiguratiebeleid en beide beleidsregels hebben de voorkeur boven de waarde van de eigenschap LogPipelineExecutionDetails van modules en modules.
Zie about_Group_Policy_Settings voor meer informatie over deze groepsbeleid instelling.
Beveiliging en controle
Het Windows PowerShell gebeurtenislogboek is ontworpen om activiteiten aan te geven en operationele details te bieden voor probleemoplossing.
Net als 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 om vertrouwelijke of bedrijfseigen informatie vast te leggen.
Gebeurtenislogboeken zijn ontworpen om te worden gelezen en begrepen door gebruikers. Gebruikers kunnen het logboek lezen en naar het logboek schrijven. Een kwaadwillende gebruiker kan een gebeurtenislogboek op een lokale of externe computer lezen, valse gegevens vastleggen en vervolgens de logboekregistratie van hun activiteiten voorkomen.
Notities
Auteurs van moduleauteurs kunnen logboekregistratiefuncties toevoegen aan hun modules. Zie Een Windows PowerShell module schrijven in de MSDN-bibliotheek voor meer informatie.