about_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 gebeurtenislogboeken gebruiken om het gebeurtenislogboek aan te passen. U kunt bijvoorbeeld gebeurtenissen over Windows PowerShell opdrachten toevoegen.
Lange beschrijving
De 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 bevindt zich in de groep Toepassings- en serviceslogboeken. 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 Windows PowerShell-gebeurtenislogboek weergeven
U kunt het Windows PowerShell gebeurtenislogboek weergeven 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 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 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 WMI-klassen (Event-Related 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 win32-gebeurtenissen 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 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 de 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 | Fouten bij logboekopdrachten |
(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 de 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 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 worden 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 ze toe aan uw Windows PowerShell-profiel.
Logboekregistratiemodule-gebeurtenissen
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 TRUE ($true) is, schrijft Windows PowerShell cmdlet- en functieuitvoeringsgebeurtenissen in de sessie naar de Windows PowerShell meld u aan bij 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 instelling Modulelogboekregistratie inschakelen groepsbeleid gebruiken om module- en moduleregistratie in te schakelen 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 beleid voor gebruikersconfiguratie heeft voorrang op het computerconfiguratiebeleid en beide beleidsregels nemen voorkeur over de waarde van de eigenschap LogPipelineExecutionDetails van modules en modules.
Zie about_Group_Policy_Settings voor meer informatie over deze instelling voor groepsbeleid.
Beveiliging en controle
Het Windows PowerShell gebeurtenislogboek is ontworpen om activiteiten aan te geven en operationele details te bieden voor probleemoplossing.
Zoals de meeste gebeurtenislogboeken van Windows-toepassingen, 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.
Notities
Auteurs van moduleauteurs kunnen logboekregistratiefuncties toevoegen aan hun modules. Zie Een Windows PowerShell-module schrijven voor meer informatie.