Sdílet prostřednictvím


about_Eventlogs

Krátký popis

Tento článek popisuje, jak PowerShell protokoluje události do protokolu událostí Systému Windows.

Dlouhý popis

Windows PowerShell vytvoří protokol událostí Windows s názvem Windows PowerShell, který zaznamená události Windows PowerShellu. 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.

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.

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*"

Další informace naleznete v tématu Get-EventLog a 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 pro tento typ události předvolbu na $truehodnotu . 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 $falsehodnotu . 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é značí, že se spustil modul Windows PowerShellu a hlavní zprostředkovatelé. Tyto události se generují před spuštěním profilů Prostředí 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 PowerShellem 3.0 můžete zaznamenávat události provádění rutin a funkcí v modulech a modulech Windows PowerShellu a moduly snap-in 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 $truehodnota vlastnosti LogPipelineExecutionDetails , Windows PowerShell zapíše rutiny a události provádění funkcí v relaci do protokolu Windows PowerShellu Prohlížeč 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 Microsoft.PowerShell.Archive
$m = Get-Module Microsoft.PowerShell.Archive
$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 Microsoft.PowerShell.Core
$m.LogPipelineExecutionDetails = $True

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

K povolení a zakázání modulu a protokolování modulu můžete použít také nastavení zapnout a zakázat protokolování modulu a modulu snap-in. Hodnota zásady obsahuje seznam názvů modulů a modulů snap-in. Podporují se zástupné kóty.

Pokud je pro modul nastavená možnost Zapnout protokolování modulu, hodnota vlastnosti LogPipelineExecutionDetails modulu je $true ve všech relacích a nedá se změnit.

Nastavení zásad skupiny Zapnout protokolování modulu 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_Nastavení.

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 Windows ale protokol událostí Windows PowerShellu není navržený tak, aby byl zabezpečený. Nemělo by se používat k auditování zabezpečení ani k zaznamenávání důvěrných nebo vlastnický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.

Notes

Autoři modulů můžou do svých modulů přidávat funkce protokolování. Další informace najdete v tématu Psaní modulu Windows PowerShellu.

Viz také