about_Eventlogs

Letzte Aktualisierung: Mai 2014

Betrifft: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

THEMA

about_EventLogs

KURZE BESCHREIBUNG

Windows PowerShell® erstellt ein Windows-Ereignisprotokoll mit dem Namen „Windows PowerShell“ zum Aufzeichnen von Windows PowerShell-Ereignissen. Sie können dieses Protokoll in der Ereignisanzeige oder mithilfe von Cmdlets anzeigen, die Ereignisse abrufen, wie z. B. dem Cmdlet „Get-EventLog“. In der Standardeinstellung werden Ereignisse von Windows PowerShell-Modul und Anbieter im Ereignisprotokoll aufgezeichnet, jedoch können Sie die Ereignisprotokoll-Einstellungsvariablen im Ereignisprotokoll anpassen. Beispielsweise können Sie über Windows PowerShell-Befehle Ereignisse hinzufügen.

LANGE BESCHREIBUNG

Das Windows PowerShell-Ereignisprotokoll zeichnet die Details der Windows PowerShell-Vorgänge auf, z. B. Starten und Beenden des Programmmoduls und Starten und Beenden der Windows PowerShell-Anbieter. Sie können Details auch über Windows PowerShell-Befehle protokollieren.

Das Windows PowerShell-Ereignisprotokoll ist in der Gruppe „Anwendungs- und Dienstprotokolle“ verfügbar. Das Windows PowerShell-Protokoll ist ein klassisches Ereignisprotokoll, das nicht die Windows Eventing-Technologie verwendet. Um das Protokoll anzuzeigen, verwenden Sie die Cmdlets für klassische Ereignisprotokolle, z. B. „Get-EventLog“.

ANZEIGEN DES WINDOWS POWERSHELL-EREIGNISPROTOKOLLS

Sie können das Windows PowerShell-Ereignisprotokoll in der Ereignisanzeige oder mithilfe des Get-EventLog- und Get-WmiObject-Cmdlets anzeigen. Zum Anzeigen des Windows PowerShell-Protokolls geben Sie Folgendes ein:

  Get-EventLog -LogName "Windows PowerShell"

Um die Ereignisse und deren Eigenschaften zu überprüfen, verwenden Sie die Cmdlets „Sort-Object“ und „Group-Object“ sowie die Cmdlets, die das Format-Verb enthalten (die Format-Cmdlets).

Um die Ereignisse im Protokoll z. B. nach der Ereignis-ID gruppiert anzuzeigen, geben Sie ein:

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

Sie können auch Folgendes eingeben:

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

Um die klassischen Ereignisprotokolle anzuzeigen, geben Sie Folgendes ein:

  Get-EventLog -List

Sie können das Get-WmiObject-Cmdlet auch verwenden, um die ereignisbezogenen Klassen der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) zum Überprüfen des Ereignisprotokolls einzusetzen. Geben Sie z. B. zum Anzeigen aller Eigenschaften der Ereignisprotokolldatei Folgendes ein:

  Get-WmiObject Win32_NTEventLogFile | where `
            {$_.LogFileName -eq "Windows PowerShell"} | Format-List -Property * 

Um die Win32-ereignisbezogenen WMI-Klassen zu suchen, geben Sie Folgendes ein:

Get-WmiObject -List | where {$_.Name -like "win32*event*"}

Um weitere Informationen zu erhalten, geben Sie „Get-Help Get-EventLog“ und „Get-Help Get-WmiObject“ ein.

AUSWÄHLEN VON EREIGNISSEN FÜR DAS WINDOWS POWERSHELL-EREIGNISPROTOKOLL

Mit den Ereignisprotokoll-Einstellungsvariablen können Sie bestimmen, welche Ereignisse im Windows PowerShell-Ereignisprotokoll aufgezeichnet werden.

Es gibt sechs Ereignisprotokoll-Einstellungsvariablen – zwei Variablen für jede der drei Protokollierungskomponenten: das Modul (das Windows PowerShell-Programm), die Anbieter und die Befehle. Die LifeCycleEvent-Variablen protokollieren normale Start- und Beendigungsereignisse. Die Health-Variablen protokollieren Fehlerereignisse.

Die folgende Tabelle enthält die Ereignisprotokoll-Einstellungsvariablen.

          Variable                     Description
          --------------------------   ----------------------------------------

  $LogEngineLifeCycleEvent     Logs starting and stopping of
                                       Windows PowerShell.

  $LogEngineHealthEvent        Logs Windows PowerShell program errors.

  $LogProviderLifeCycleEvent   Logs starting and stopping of 
                                       Windows PowerShell providers.

  $LogProviderHealthEvent      Logs Windows PowerShell provider errors.

  $LogCommandLifeCycleEvent    Logs starting and completion of commands.

  $LogCommandHealthEvent       Logs command errors.

(Wenn Sie Informationen zu Windows PowerShell-Anbietern benötigen, geben Sie Folgendes ein: „Get-Help About_providers“.)

Standardmäßig werden nur die folgenden Ereignistypen aktiviert:

  $LogEngineLifeCycleEvent
  $LogEngineHealthEvent
  $LogProviderLifeCycleEvent
  $LogProviderHealthEvent

Um einen Ereignistyp zu aktivieren, legen Sie die Einstellungsvariable für diesen Ereignistyp auf „$true“ fest. Geben Sie z. B. zum Aktivieren der Lebenszyklusereignisse des Befehls Folgendes ein:

  $LogCommandLifeCycleEvent

Sie können auch Folgendes eingeben:

  $LogCommandLifeCycleEvent = $true

Um einen Ereignistyp zu deaktivieren, legen Sie die Einstellungsvariable für diesen Ereignistyp auf „$false“ fest. Geben Sie z. B. zum Deaktivieren der Lebenszyklusereignisse des Befehls Folgendes ein:

  $LogProviderLifeCycleEvent = $false

Sie können jedes Ereignis deaktivieren, mit Ausnahme der Ereignisse, die angeben, dass das Windows PowerShell-Modul und die Kernanbieter gestartet werden. Diese Ereignisse werden generiert, bevor die Windows PowerShell-Profile ausgeführt werden, und bevor das Hostprogramm bereit ist, Befehle anzunehmen.

Die Variableneinstellungen gelten nur für die aktuelle Windows PowerShell-Sitzung. Um sie auf alle Windows PowerShell-Sitzungen anzuwenden, fügen Sie sie Ihrem Windows PowerShell-Profil hinzu.

PROTOKOLLIEREN VON MODULEREIGNISSEN

Seit Windows PowerShell 3.0 können Sie Ausführungsereignisse für die Cmdlets und Funktionen in Windows PowerShell-Modulen und Snap-Ins aufzeichnen, indem Sie die LogPipelineExecutionDetails-Eigenschaft der Module und Snap-Ins auf „TRUE“ setzen. In Windows PowerShell 2.0 steht dieses Feature nur für Snap-Ins zur Verfügung.

Wenn der Wert der LogPipelineExecutionDetails-Eigenschaft auf „TRUE“ („$True“) gesetzt ist, schreibt Windows PowerShell Ereignisse bei der Ausführung von Cmdlets und Funktionen in der Sitzung in das Windows PowerShell-Protokoll in der Ereignisanzeige. Die Einstellung gilt nur in der aktuellen Sitzung.

Um die Protokollierung von Ereignissen der Ausführung von Cmdlets und Funktionen in einem Modul zu aktivieren, verwenden Sie die folgende Befehlssequenz.

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

Um die Protokollierung von Ereignissen der Ausführung von Cmdlets in einem Snap-In zu aktivieren, verwenden Sie die folgende Befehlssequenz.

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

Um die Protokollierung zu deaktivieren, verwenden Sie die gleiche Befehlssequenz, um den Wert der Eigenschaft auf „FALSE“ („$False“) festzulegen.

Sie können auch die Gruppenrichtlinien-Einstellung „Modulprotokollierung aktivieren“ verwenden, um Modul- und Snap-In-Protokollierung zu aktivieren bzw. deaktivieren. Der Richtlinienwert enthält eine Liste der Modul- und Snap-In-Namen. Platzhalter werden unterstützt.

Wenn „Modulprotokollierung aktivieren“ für ein Modul festgelegt ist, ist der Wert der Eigenschaft „LogPipelineExecutionDetails“ des Moduls in allen Sitzungen „TRUE“ und kann nicht geändert werden.

Die Gruppenrichtlinien-Einstellung „Modulprotokollierung aktivieren“ befindet sich in den folgenden Pfaden für Gruppenrichtlinien:

        Computer Configuration\Administrative Templates\Windows Components\Windows PowerShell
        User Configuration\Administrative Templates\Windows Components\Windows PowerShell

Die „User Configuration“-Richtlinie hat Vorrang vor der „Computer Configuration“-Richtlinie, und beide Richtlinien haben Vorrang vor dem Wert der Eigenschaft „LogPipelineExecutionDetails“ von Modulen und Snap-Ins.

Weitere Informationen zu dieser Gruppenrichtlinien-Einstellung finden Sie unter „about_Group_Policy_Settings“ (https://go.microsoft.com/fwlink/?LinkID=251696).

SICHERHEIT UND ÜBERWACHUNG

Das Windows PowerShell-Ereignisprotokoll wurde entwickelt, um Aktivitäten anzuzeigen und für die Problembehandlung nützliche Detailinformationen bereitzustellen.

Wie die meisten Windows-basierten Anwendungsereignisprotokolle ist das Windows PowerShell-Ereignisprotokoll jedoch nicht sicher ausgelegt. Es sollte nicht zur Überwachung der Sicherheit oder zum Aufzeichnen vertraulicher oder proprietärer Informationen verwendet werden.

Ereignisprotokolle sollen für Benutzer lesbar und verständlich sein. Benutzer können aus Protokollen lesen und darin schreiben. Böswillige Benutzer könnten ein Ereignisprotokoll auf einem lokalen Computer oder Remotecomputer lesen, falsche Daten aufzeichnen und dann die Protokollierung ihrer Aktivitäten verhindern.

NOTIZEN

Autoren von Modulen können ihren Modulen Protokollierungsfeatures hinzufügen. Weitere Informationen finden Sie bei MSDN in „Schreiben eines Windows PowerShell-Moduls“ unter https://go.microsoft.com/fwlink/?LinkID=144916.

SIEHE AUCH

Get-EventLog

Get-WmiObject

about_Group_Policy_Settings

about_Preference_Variables