Sdílet prostřednictvím


O protokolech událostí

Krátký popis

Windows PowerShell vytvoří protokol událostí Windows s názvem "Windows PowerShell" pro záznam událostí Windows PowerShell. Toto přihlášení můžete zobrazit Prohlížeč událostí nebo pomocí rutin, které získávají události, jako je například rutinaGet-EventLog. Ve výchozím nastavení se události modulu Windows PowerShellu a zprostředkovatele zaznamenávají do protokolu událostí, ale k přizpůsobení protokolu událostí můžete použít proměnné předvoleb protokolu událostí. Můžete například přidat události o příkazech Windows PowerShellu.

Dlouhý popis

Protokol událostí Windows PowerShellu zaznamenává podrobnosti o operacích Windows PowerShellu, jako je spuštění a zastavení programového modulu a spuštění a zastavení zprostředkovatelů Windows PowerShellu. Můžete také protokolovat podrobnosti o příkazech Windows PowerShellu.

Protokol událostí prostředí Windows PowerShell se nachází ve skupině Protokoly aplikací a služeb. Protokol prostředí Windows PowerShell je klasický protokol událostí, který nepoužívá technologii Windows Eventing. Chcete-li zobrazit protokol, použijte rutiny určené pro klasické protokoly událostí, jako je Get-EventLog.

Zobrazení protokolu událostí Windows PowerShellu

Protokol událostí Windows PowerShellu můžete zobrazit Prohlížeč událostí nebo pomocí rutinGet-EventLog.Get-WmiObject Pokud chcete zobrazit obsah protokolu Windows PowerShellu, zadejte:

Get-EventLog -LogName "Windows PowerShell"

Pokud chcete prozkoumat události a jejich vlastnosti, použijte rutinu Sort-Object , rutinu Group-Object a rutiny, které obsahují Format příkaz (rutiny Format ).

Pokud chcete například zobrazit události v protokolu seskupené podle ID události, zadejte:

Get-EventLog "Windows PowerShell" | Format-Table -GroupBy EventID

Nebo zadejte:

Get-EventLog "Windows PowerShell" |
  Sort-Object EventID |
  Group-Object EventID

Pokud chcete zobrazit všechny klasické protokoly událostí, zadejte:

Get-EventLog -List

Pomocí rutiny Get-WmiObject můžete také prozkoumat protokol událostí třídy WMI (Windows Management Instrumentation). Pokud chcete například zobrazit všechny vlastnosti souboru protokolu událostí, zadejte:

Get-WmiObject Win32_NTEventlogFile |
  where LogFileName -EQ "Windows PowerShell" |
  Format-List -Property *

Pokud chcete najít třídy služby WMI související s událostmi Win32, zadejte:

Get-WmiObject -List | where Name -Like "win32*event*"

Pro více informací zadejte "Get-Help Get-EventLog" a "Get-Help Get-WmiObject".

Výběr událostí pro protokol událostí Windows PowerShellu

Pomocí proměnných předvoleb protokolu událostí můžete určit, které události se zaznamenávají v protokolu událostí Windows PowerShellu.

Existuje šest proměnných předvoleb protokolu událostí; dvě proměnné pro každou ze tří komponent protokolování: modul (program Windows PowerShell), zprostředkovatele a příkazy. Proměnné LifeCycleEvent protokolují normální spouštění a zastavování událostí. Události chyb protokolu proměnných stavu.

Následující tabulka uvádí proměnné předvoleb protokolu událostí.

Proměnná Popis
$LogEngineLifeCycleEvent Zaznamená spuštění a zastavení PowerShellu.
$LogEngineHealthEvent Protokoly chyb programu PowerShellu
$LogProviderLifeCycleEvent Zaznamená spuštění a zastavení zprostředkovatelů PowerShellu.
$LogProviderHealthEvent Protokoluje chyby zprostředkovatele PowerShellu.
$LogCommandLifeCycleEvent Zaznamenává spouštění a dokončování příkazů.
$LogCommandHealthEvent Protokoly chyb příkazů

(Informace o poskytovateli Windows PowerShellu najdete v tématu about_Providers.)

Ve výchozím nastavení jsou povoleny pouze následující typy událostí:

  • $LogEngineLifeCycleEvent
  • $LogEngineHealthEvent
  • $LogProviderLifeCycleEvent
  • $LogProviderHealthEvent

Chcete-li povolit typ události, nastavte proměnnou předvoleb pro tento typ události na $true. Pokud chcete například povolit události životního cyklu příkazů, zadejte:

$LogCommandLifeCycleEvent

Nebo zadejte:

$LogCommandLifeCycleEvent = $true

Chcete-li zakázat typ události, nastavte proměnnou předvoleb pro tento typ události na $false. Pokud chcete například zakázat události životního cyklu příkazů, zadejte:

$LogProviderLifeCycleEvent = $false

Můžete zakázat libovolnou událost s výjimkou událostí, které indikují, že je spuštěn modul Windows PowerShell a základní poskytovatelé. Tyto události se generují před spuštěním profilů Windows PowerShell a před tím, než je hostitelský program připraven přijímat příkazy.

Nastavení proměnných platí jenom pro aktuální relaci Windows PowerShellu. Pokud je chcete použít pro všechny relace Windows PowerShellu, přidejte je do profilu Windows PowerShellu.

Protokolování událostí modulu

Počínaje Windows PowerShell 3.0 můžete zaznamenávat události provádění rutin a funkcí v modulech a modulech snap-in Windows PowerShell nastavením vlastnosti LogPipelineExecutionDetails modulů a modulů snap-in na TRUE. Ve Windows PowerShellu 2.0 je tato funkce dostupná jenom pro moduly snap-in.

Pokud je hodnota vlastnosti LogPipelineExecutionDetails TRUE ($true), Windows PowerShell zapisuje události spuštění rutin a funkcí v relaci do protokolu Windows PowerShell v Prohlížeči událostí. Nastavení je platné jenom v aktuální relaci.

Pokud chcete povolit protokolování událostí provádění rutin a funkcí v modulu, použijte následující posloupnost příkazů.

Import-Module <ModuleName>
$m = Get-Module <ModuleName>
$m.LogPipelineExecutionDetails = $true

Pokud chcete povolit protokolování událostí provádění rutin v modulu snap-in, použijte následující posloupnost příkazů.

$m = Get-PSSnapin <SnapInName> [-Registered]
$m.LogPipelineExecutionDetails = $True

Chcete-li protokolování zakázat, použijte stejnou sekvenci příkazů k nastavení hodnoty vlastnosti na FALSE ($false).

Můžete také použít nastavení zásad skupiny Zapnout protokolování modulů a modulů snap-in k povolení a zakázání protokolování modulů a modulů snap-in. Hodnota zásady obsahuje seznam názvů modulů a modulů snap-in. Zástupné znaky jsou podporovány.

Pokud je pro modul nastaveno "Zapnout protokolování modulu", hodnota vlastnosti LogPipelineExecutionDetails modulu je TRUE ve všech relacích a nelze ji změnit.

Nastavení zásad skupiny Zapnout protokolování modulů se nachází v následujících cestách zásad skupiny:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

Zásady konfigurace uživatele mají přednost před zásadami konfigurace počítače a obě zásady mají přednost před hodnotou LogPipelineExecutionDetails vlastností modulů a modulů snap-in.

Další informace o tomto nastavení zásad skupiny najdete v tématu about_Group_Policy_Settings.

Zabezpečení a auditování

Protokol událostí Windows PowerShellu je navržený tak, aby označil aktivitu a poskytl provozní podrobnosti pro řešení potíží.

Stejně jako většina protokolů událostí aplikací založených na systému Windows však protokol událostí prostředí Windows PowerShell není navržen tak, aby byl zabezpečený. Neměly by být používány k auditu bezpečnosti nebo k zaznamenávání důvěrných nebo chráněných informací.

Protokoly událostí jsou navržené tak, aby byly čtené a srozumitelné uživatelům. Uživatelé můžou číst protokol a zapisovat do protokolu. Uživatel se zlými úmysly může číst protokol událostí na místním nebo vzdáleném počítači, zaznamenávat falešná data a pak zabránit protokolování svých aktivit.

Poznámky

Autoři modulů můžou do svých modulů přidávat funkce protokolování. Další informace naleznete v tématu Zápis modulu Windows PowerShell v knihovně MSDN.

Viz také

Příkaz Get-EventLog

Příkaz Get-WmiObject

o_Nastavení_Skupinových_Zásad

o_Preferenčních_Proměnných