Share via


about_Logging

Kurze Beschreibung

PowerShell protokolliert interne Vorgänge aus dem Modul, den Anbietern und Cmdlets im Windows-Ereignisprotokoll.

Lange Beschreibung

PowerShell protokolliert Details zu PowerShell-Vorgängen, z. B. Starten und Beenden des Moduls und Anbieters und Ausführen von PowerShell-Befehlen.

Hinweis

Windows PowerShell 5.1 (und ältere) enthalten EventLog-Cmdlets für die Windows-Ereignisprotokolle. In diesen Versionen zeigen Sie die Liste der EventLog-Cmdlets an: Get-Command -Noun EventLog. Weitere Informationen finden Sie in der Cmdlet-Dokumentation und about_EventLogs für Ihre Version von Windows PowerShell.

Informationen zur Protokollierung in PowerShell 7 finden Sie in den folgenden Artikeln:

Anzeigen der PowerShell-Ereignisprotokolleinträge unter Windows

PowerShell-Protokolle können mithilfe des Windows Ereignisanzeige angezeigt werden. Das Ereignisprotokoll befindet sich in der Gruppe "Anwendungs- und Dienstprotokolle" und heißt "Microsoft-Windows-PowerShell". Der zugeordnete ETW-Anbieter GUID ist {A0C1853B-5C40-4B15-8766-3CF1C58F985A}.

Wenn die Skriptblockprotokollierung aktiviert ist, protokolliert PowerShell die folgenden Ereignisse im Microsoft-Windows-PowerShell/Betriebsprotokoll :

Feld Wert
EventId 4104 / 0x1008
Kanal Operational
Ebene Verbose
Opcode Create
Aufgabe CommandStart
Schlüsselwort Runspace

Aktivieren der Skriptblockprotokollierung

Wenn Sie die Skriptblockprotokollierung aktivieren, zeichnet PowerShell den Inhalt aller Skriptblöcke auf, die verarbeitet werden. Nach der Aktivierung protokolliert jede neue PowerShell-Sitzung diese Informationen.

Hinweis

Um sicherzustellen, dass vertrauliche Daten geschützt sind, aktivieren Sie die geschützte Ereignisprotokollierung, wenn Sie die Skriptblockprotokollierung für andere Zwecke als Diagnose Zwecke verwenden.

Die Skriptblockprotokollierung kann über Gruppenrichtlinien oder eine Registrierungseinstellung aktiviert werden.

Verwenden von Gruppenrichtlinien

Aktivieren Sie zum Aktivieren der automatischen Transkription das Feature "Aktivieren der PowerShell-Skriptblockprotokollierung" in der Gruppenrichtlinie über administrative Vorlagen ->Windows-Komponenten ->Windows PowerShell.

Mithilfe der Registrierung

Führen Sie die folgende Funktion aus:

function Enable-PSScriptBlockLogging {
    $basePath = @(
        'HKLM:\Software\Policies\Microsoft\Windows'
        'PowerShell\ScriptBlockLogging'
    ) -join '\'

    if (-not (Test-Path $basePath)) {
        $null = New-Item $basePath -Force
    }

    Set-ItemProperty $basePath -Name EnableScriptBlockLogging -Value "1"
}

Geschützte Ereignisprotokollierung

Durch die Erhöhung der Protokollierung bei einem System wird die Möglichkeit erhöht, dass protokollierte Inhalte vertrauliche Daten enthalten können. Beispielsweise können mit aktivierter Skriptprotokollierung, Anmeldeinformationen oder anderen vertraulichen Daten, die von einem Skript verwendet werden, in das Ereignisprotokoll geschrieben werden. Wenn ein Computer, auf dem vertrauliche Daten protokolliert wurden, kompromittiert wird, können die Protokolle einem Angreifer Informationen bereitstellen, die erforderlich sind, um seine Reichweite zu erweitern.

Um diese Informationen zu schützen, führt Windows 10 die Geschützte Ereignisprotokollierung ein. Mit der geschützten Ereignisprotokollierung können teilnehmende Anwendungen vertrauliche Daten verschlüsseln, die in das Ereignisprotokoll geschrieben wurden. Später können Sie diese Protokolle in einem sichereren und zentralisierten Protokollsammler entschlüsseln und verarbeiten.

Ereignisprotokollinhalte werden mithilfe des IETF-Standards für kryptografische Nachrichtensyntax (CMS) geschützt. CMS verwendet Kryptografie mit öffentlichem Schlüssel. Die Schlüssel zum Verschlüsseln von Inhalten und Entschlüsseln von Inhalten werden getrennt gespeichert.

Der öffentliche Schlüssel kann allgemein freigegeben werden und sind keine vertraulichen Daten. Alle mit diesem öffentlichen Schlüssel verschlüsselten Inhalte können nur vom privaten Schlüssel entschlüsselt werden. Weitere Informationen zur Kryptografie mit öffentlichem Schlüssel finden Sie unter Wikipedia - Public Key Cryptography.

Um eine Richtlinie für die geschützte Ereignisprotokollierung zu aktivieren, stellen Sie einen öffentlichen Schlüssel auf allen Computern bereit, auf denen Ereignisprotokolldaten zum Schutz vorhanden sind. Der entsprechende private Schlüssel wird verwendet, um die Ereignisprotokolle an einem sichereren Ort wie einem zentralen Ereignisprotokollsammler oder SIEM-Aggregator zu verarbeiten. Sie können SIEM in Azure einrichten. Weitere Informationen finden Sie unter generische SIEM-Integration.

Aktivieren der Geschützten Ereignisprotokollierung über Gruppenrichtlinien

Um die geschützte Ereignisprotokollierung zu aktivieren, aktivieren Sie das Enable Protected Event Logging Feature in der Gruppenrichtlinie über Administrative Templates -> Windows Components -> Event Logging. Für diese Einstellung ist ein Verschlüsselungszertifikat erforderlich, das Sie in einer von mehreren Formen bereitstellen können:

  • Der Inhalt eines base64-codierten X.509-Zertifikats (z. B. wie in der Export Option im Zertifikat-Manager angeboten).
  • Der Fingerabdruck eines Zertifikats, das sich im Zertifikatspeicher des lokalen Computers befindet (kann von der PKI-Infrastruktur bereitgestellt werden).
  • Der vollständige Pfad zu einem Zertifikat (kann lokal oder eine Remotefreigabe sein).
  • Der Pfad zu einem Verzeichnis, das ein Zertifikat oder Zertifikate enthält (kann lokal oder eine Remotefreigabe sein).
  • Der Antragstellername eines Zertifikats, das sich im Zertifikatspeicher des lokalen Computers befindet (kann von der PKI-Infrastruktur bereitgestellt werden).

Das resultierende Zertifikat muss Document Encryption als erweiterte Schlüsselverwendung (1.3.6.1.4.1.311.80.1) und entweder Data Encipherment als Schlüsselverwendung aktiviert Key Encipherment sein.

Warnung

Der private Schlüssel sollte nicht für die Computerprotokollierungsereignisse bereitgestellt werden. Sie sollte an einem sicheren Ort aufbewahrt werden, an dem Sie die Nachrichten entschlüsseln.

Entschlüsseln geschützter Ereignisprotokollierungsmeldungen

Das folgende Skript ruft Ereignisse ab und entschlüsselt sie, vorausgesetzt, Sie haben den privaten Schlüssel:

Get-WinEvent Microsoft-Windows-PowerShell/Operational |
    Where-Object Id -eq 4104 |
    Unprotect-CmsMessage

Weitere Informationen