Udostępnij za pośrednictwem


Informacje o dziennikach zdarzeń

Krótki opis

Windows PowerShell tworzy dziennik zdarzeń systemu Windows o nazwie "Windows PowerShell" do rejestrowania zdarzeń Windows PowerShell. Możesz wyświetlić ten dziennik w Podgląd zdarzeń lub za pomocą poleceń cmdlet, które pobierają zdarzenia, takie jak Get-EventLog polecenie cmdlet. Domyślnie Windows PowerShell zdarzeń aparatu i dostawcy są rejestrowane w dzienniku zdarzeń, ale można użyć zmiennych preferencji dziennika zdarzeń, aby dostosować dziennik zdarzeń. Można na przykład dodawać zdarzenia dotyczące poleceń Windows PowerShell.

Długi opis

Dziennik zdarzeń Windows PowerShell rejestruje szczegóły operacji Windows PowerShell, takich jak uruchamianie i zatrzymywanie aparatu programu oraz uruchamianie i zatrzymywanie dostawców Windows PowerShell. Możesz również rejestrować szczegółowe informacje o poleceniach Windows PowerShell.

Dziennik zdarzeń Windows PowerShell znajduje się w grupie Dzienniki aplikacji i usług. Dziennik Windows PowerShell jest klasycznym dziennikiem zdarzeń, który nie korzysta z technologii Eventing systemu Windows. Aby wyświetlić dziennik, użyj poleceń cmdlet przeznaczonych dla klasycznych dzienników zdarzeń, takich jak Get-EventLog.

Wyświetlanie dziennika zdarzeń Windows PowerShell

Dziennik zdarzeń Windows PowerShell można wyświetlić w Podgląd zdarzeń lub za pomocą Get-EventLog poleceń cmdlet i Get-WmiObject . Aby wyświetlić zawartość dziennika Windows PowerShell, wpisz:

Get-EventLog -LogName "Windows PowerShell"

Aby zbadać zdarzenia i ich właściwości, użyj Sort-Object polecenia cmdlet, Group-Object polecenia cmdlet i poleceń cmdlet zawierających Format czasownik ( Format polecenia cmdlet).

Aby na przykład wyświetlić zdarzenia w dzienniku pogrupowane według identyfikatora zdarzenia, wpisz:

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

Lub, wpisz:

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

Aby wyświetlić wszystkie klasyczne dzienniki zdarzeń, wpisz:

Get-EventLog -List

Możesz również użyć Get-WmiObject polecenia cmdlet , aby użyć klas instrumentacji zarządzania Windows (WMI) związanych z zdarzeniami w celu zbadania dziennika zdarzeń. Aby na przykład wyświetlić wszystkie właściwości pliku dziennika zdarzeń, wpisz:

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

Aby znaleźć klasy WMI związane z zdarzeniami Win32, wpisz:

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

Aby uzyskać więcej informacji, wpisz "Get-Help Get-EventLog" i "Get-Help Get-WmiObject".

Wybieranie zdarzeń dla dziennika zdarzeń Windows PowerShell

Zmienne preferencji dziennika zdarzeń umożliwiają określenie, które zdarzenia są rejestrowane w dzienniku zdarzeń Windows PowerShell.

Istnieje sześć zmiennych preferencji dziennika zdarzeń; dwie zmienne dla każdego z trzech składników rejestrowania: aparat (program Windows PowerShell), dostawcy i polecenia. Zmienne LifeCycleEvent rejestrują normalne zdarzenia uruchamiania i zatrzymywania. Zmienne kondycji rejestrują zdarzenia błędów.

W poniższej tabeli wymieniono zmienne preferencji dziennika zdarzeń.

Zmienna Opis
$LogEngineLifeCycleEvent Rejestruje uruchamianie i zatrzymywanie programu PowerShell
$LogEngineHealthEvent Rejestruje błędy programu PowerShell
$LogProviderLifeCycleEvent Rejestruje uruchamianie i zatrzymywanie dostawców programu PowerShell
$LogProviderHealthEvent Rejestruje błędy dostawcy programu PowerShell
$LogCommandLifeCycleEvent Rejestruje uruchamianie i uzupełnianie poleceń
$LogCommandHealthEvent Rejestruje błędy poleceń

(Aby uzyskać informacje o dostawcach Windows PowerShell, zobacz about_Providers).

Domyślnie są włączone tylko następujące typy zdarzeń:

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

Aby włączyć typ zdarzenia, ustaw zmienną preferencji dla tego typu zdarzenia na $true. Aby na przykład włączyć zdarzenia cyklu życia polecenia, wpisz:

$LogCommandLifeCycleEvent

Lub, wpisz:

$LogCommandLifeCycleEvent = $true

Aby wyłączyć typ zdarzenia, ustaw zmienną preferencji dla tego typu zdarzenia na $false. Aby na przykład wyłączyć zdarzenia cyklu życia polecenia, wpisz:

$LogProviderLifeCycleEvent = $false

Można wyłączyć dowolne zdarzenie, z wyjątkiem zdarzeń, które wskazują, że aparat Windows PowerShell i dostawcy rdzeni są uruchomione. Te zdarzenia są generowane przed uruchomieniem profilów Windows PowerShell i zanim program hosta będzie gotowy do akceptowania poleceń.

Ustawienia zmiennych dotyczą tylko bieżącej sesji Windows PowerShell. Aby zastosować je do wszystkich sesji Windows PowerShell, dodaj je do profilu Windows PowerShell.

Rejestrowanie zdarzeń modułu

Począwszy od Windows PowerShell 3.0, można rejestrować zdarzenia wykonywania dla poleceń cmdlet i funkcji w modułach Windows PowerShell i przystawkach, ustawiając właściwość LogPipelineExecutionDetails modułów i przystawek na wartość TRUE. W Windows PowerShell 2.0 ta funkcja jest dostępna tylko dla przystawek.

Gdy wartość właściwości LogPipelineExecutionDetails ma wartość TRUE ($true), Windows PowerShell zapisuje zdarzenia cmdlet i wykonywania funkcji w sesji do Windows PowerShell logować się Podgląd zdarzeń. Ustawienie jest skuteczne tylko w bieżącej sesji.

Aby włączyć rejestrowanie zdarzeń wykonywania poleceń cmdlet i funkcji w module, użyj następującej sekwencji poleceń.

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

Aby włączyć rejestrowanie zdarzeń wykonywania poleceń cmdlet w przystawce, użyj następującej sekwencji poleceń.

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

Aby wyłączyć rejestrowanie, użyj tej samej sekwencji poleceń, aby ustawić wartość właściwości false ($false).

Możesz również użyć ustawienia "Włącz rejestrowanie modułu" zasady grupy, aby włączyć i wyłączyć moduł i rejestrowanie przystawek. Wartość zasad zawiera listę modułów i nazw przystawek. Obsługiwane są symbole wieloznaczne.

Gdy dla modułu jest ustawiona wartość "Włącz rejestrowanie modułu", wartość właściwości LogPipelineExecutionDetails modułu ma wartość TRUE we wszystkich sesjach i nie można jej zmienić.

Ustawienie zasad grupy Włącz rejestrowanie modułu znajduje się w następujących ścieżkach zasady grupy:

Computer Configuration\
  Administrative Templates\
    Windows Components\
     Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

Zasady konfiguracji użytkownika mają pierwszeństwo przed zasadami konfiguracji komputera, a obie zasady przejmują preferencje dotyczące wartości właściwości LogPipelineExecutionDetails modułów i przystawek.

Aby uzyskać więcej informacji na temat tego ustawienia zasady grupy, zobacz about_Group_Policy_Settings.

Zabezpieczenia i inspekcja

Dziennik zdarzeń Windows PowerShell ma na celu wskazanie aktywności i podanie szczegółów operacyjnych dotyczących rozwiązywania problemów.

Jednak podobnie jak w przypadku większości dzienników zdarzeń aplikacji opartych na systemie Windows, dziennik zdarzeń Windows PowerShell nie jest przeznaczony do zabezpieczenia. Nie należy go używać do przeprowadzania inspekcji zabezpieczeń ani rejestrowania poufnych lub zastrzeżonych informacji.

Dzienniki zdarzeń są przeznaczone do odczytu i zrozumienia przez użytkowników. Użytkownicy mogą odczytywać dane z dziennika i zapisywać je w dzienniku. Złośliwy użytkownik może odczytać dziennik zdarzeń na komputerze lokalnym lub zdalnym, zarejestrować fałszywe dane, a następnie uniemożliwić rejestrowanie ich działań.

Uwagi

Autorzy modułów mogą dodawać funkcje rejestrowania do swoich modułów. Aby uzyskać więcej informacji, zobacz Pisanie modułu Windows PowerShell w bibliotece MSDN.

Zobacz też

Get-EventLog

Get-WmiObject

about_Group_Policy_Settings

about_Preference_Variables