Informationen zu Protokollierungs FensternAbout Logging Windows

Kurze BeschreibungShort description

PowerShell protokolliert interne Vorgänge von der Engine, den Anbietern und den Cmdlets im Windows-Ereignisprotokoll.PowerShell logs internal operations from the engine, providers, and cmdlets to the Windows event log.

Lange BeschreibungLong description

PowerShell protokolliert Details zu PowerShell-Vorgängen, z. b. das Starten und Beenden der Engine und Anbieter und das Ausführen von PowerShell-Befehlen.PowerShell logs details about PowerShell operations, such as starting and stopping the engine and providers, and executing PowerShell commands.

Hinweis

Windows PowerShell-Versionen 3,0, 4,0, 5,0 und 5,1 enthalten EventLog -Cmdlets für die Windows-Ereignisprotokolle.Windows PowerShell versions 3.0, 4.0, 5.0, and 5.1 include EventLog cmdlets for the Windows event logs. Geben Sie in diesen Versionen Folgendes ein, um die Liste der EventLog -Cmdlets anzuzeigen: Get-Command -Noun EventLog .In those versions, to display the list of EventLog cmdlets type: Get-Command -Noun EventLog. Weitere Informationen finden Sie in der Cmdlet-Dokumentation und about_EventLogs für Ihre Version von Windows PowerShell.For more information, see the cmdlet documentation and about_EventLogs for your version of Windows PowerShell.

Anzeigen der PowerShell-Ereignisprotokoll Einträge unter WindowsViewing the PowerShell event log entries on Windows

PowerShell-Protokolle können mithilfe des Windows-Ereignisanzeige angezeigt werden.PowerShell logs can be viewed using the Windows Event Viewer. Das Ereignisprotokoll befindet sich in der Gruppe Anwendungs-und Dienst Protokolle und hat den Namen PowerShellCore .The event log is located in the Application and Services Logs group and is named PowerShellCore. Der zugehörige ETW-Anbieter GUID ist {f90714a8-5509-434a-bf6d-b1624c8a19a2} .The associated ETW provider GUID is {f90714a8-5509-434a-bf6d-b1624c8a19a2}.

Wenn die Protokollierung von Skript Blöcken aktiviert ist, protokolliert PowerShell die folgenden Ereignisse im PowerShellCore/Operational Protokoll:When Script Block Logging is enabled, PowerShell logs the following events to the PowerShellCore/Operational log:

FeldField WertValue
EventIdEventId 4104 / 0x1008
ChannelChannel Operational
EbeneLevel Verbose
OpcodeOpcode Create
AufgabeTask CommandStart
StichwortKeyword Runspace

Registrieren des PowerShell-Ereignis Anbieters unter WindowsRegistering the PowerShell event provider on Windows

Anders als bei Linux oder macOS muss Windows den Ereignis Anbieter registrieren, bevor Ereignisse in das Ereignisprotokoll geschrieben werden können.Unlike Linux or macOS, Windows requires the event provider to be registered before events can be written to the event log. Führen Sie den folgenden Befehl an einer PowerShell-Eingabeaufforderung mit erhöhten Rechten aus, um den PowerShell-Ereignis Anbieter zu aktivieren.To enable the PowerShell event provider, run the following command from an elevated PowerShell prompt.

$PSHOME\RegisterManifest.ps1

Aufheben der Registrierung des PowerShell-Ereignis Anbieters unter WindowsUnregistering the PowerShell event provider on Windows

Durch das Registrieren des Ereignis Anbieters wird eine Sperre in der binären Bibliothek platziert, die zum Decodieren von Ereignissen verwendet wird.Registering the event provider places a lock in the binary library used to decode events. Um diese Bibliothek zu aktualisieren, muss die Registrierung des Anbieters aufgehoben werden, um diese Sperre freizugeben.To update this library, the provider must be unregistered to release this lock.

Um die Registrierung des PowerShell-Anbieters aufzuheben, führen Sie den folgenden Befehl an einer PowerShell-Eingabeaufforderung mit erhöhten Rechten aus.To unregister the PowerShell provider, run the following command from an elevated PowerShell prompt.

$PSHOME\RegisterManifest.ps1 -Unregister

Führen Sie nach dem Aktualisieren von PowerShell aus, $PSHOME\RegisterManifest.ps1 um den aktualisierten Ereignis Anbieter zu registrieren.After updating PowerShell, run $PSHOME\RegisterManifest.ps1 to register the updated event provider.

Aktivieren der Skript Block ProtokollierungEnabling Script Block Logging

Wenn Sie die Skript Block Protokollierung aktivieren, zeichnet PowerShell den Inhalt aller Skriptblöcke auf, die er verarbeitet.When you enable Script Block Logging, PowerShell records the content of all script blocks that it processes. Nach der Aktivierung werden diese Informationen in jeder neuen PowerShell-Sitzung protokolliert.Once enabled, any new PowerShell session logs this information.

Hinweis

Es wird empfohlen, die Protokollierung geschützter Ereignisse wie unten beschrieben zu aktivieren, wenn Sie die Skript Block Protokollierung für andere Zwecke als Diagnosezwecke verwenden.It's recommended to enable Protected Event Logging, as described below, when using Script Block Logging for anything other than diagnostics purposes.

Die Skript Block Protokollierung kann über Gruppenrichtlinie oder eine Registrierungs Einstellung aktiviert werden.Script Block Logging can be enabled via Group Policy or a registry setting.

Verwenden von GruppenrichtlinienUsing Group Policy

Aktivieren Sie zum Aktivieren der automatischen Aufzeichnung die Turn on PowerShell Script Block Logging Funktion in Gruppenrichtlinie Administrative Templates -> Windows Components -> Windows PowerShell .To enable automatic transcription, enable the Turn on PowerShell Script Block Logging feature in Group Policy through Administrative Templates -> Windows Components -> Windows PowerShell.

Verwenden der RegistrierungUsing the Registry

Führen Sie die folgende Funktion aus:Run the following function:

function Enable-PSScriptBlockLogging
{
    $basePath = 'HKLM:\Software\Policies\Microsoft\Windows' +
      '\PowerShell\ScriptBlockLogging'

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

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

Protokollierung geschützter EreignisseProtected Event Logging

Das Erhöhen der Protokollierungsebene auf einem System erhöht die Wahrscheinlichkeit, dass protokollierte Inhalte vertrauliche Daten enthalten können.Increasing the level of logging on a system increases the possibility that logged content may contain sensitive data. Wenn z. b. die Skript Protokollierung aktiviert ist, können Anmelde Informationen oder andere sensible Daten, die von einem Skript verwendet werden, in das Ereignisprotokoll geschrieben werden.For example, with script logging enabled, credentials or other sensitive data used by a script can be written to the event log. Wenn ein Computer, auf dem sensible Daten protokolliert wurden, kompromittiert ist, können die Protokolle einem Angreifer Informationen zur Verfügung stellen, die zum Erweitern der Reichweite benötigt werden.When a machine that has logged sensitive data is compromised, the logs can provide an attacker with information needed to extend their reach.

Um diese Informationen zu schützen, führt Windows 10 die Protokollierung geschützter Ereignisse ein.To protect this information, Windows 10 introduces Protected Event Logging. Durch die Protokollierung geschützter Ereignisse können beteiligte Anwendungen vertrauliche Daten verschlüsseln, die in das Ereignisprotokoll geschrieben werden.Protected Event Logging lets participating applications encrypt sensitive data written to the event log. Später können Sie diese Protokolle auf einem sichereren und zentralisierten Protokoll Sammler entschlüsseln und verarbeiten.Later, you can decrypt and process these logs on a more secure and centralized log collector.

Der Inhalt des Ereignis Protokolls wird mithilfe des IETF Cryptographic Message Syntax (CMS)-Standards geschützt.Event log content is protected using the IETF Cryptographic Message Syntax (CMS) standard. CMS verwendet Kryptografie mit öffentlichem Schlüssel.CMS uses public key cryptography. Die Schlüssel, die zum Verschlüsseln von Inhalten und Entschlüsseln von Inhalten verwendet werden, werden separat aufbewahrt.The keys used to encrypt content and decrypt content are kept separate.

Der öffentliche Schlüssel kann umfassend freigegeben werden, und es handelt sich nicht um vertrauliche Daten.The public key can be shared widely and isn't sensitive data. Alle Inhalte, die mit diesem öffentlichen Schlüssel verschlüsselt sind, können nur mit dem privaten Schlüssel entschlüsselt werden.Any content encrypted with this public key can only be decrypted by the private key. Weitere Informationen zur Kryptografie mit öffentlichem Schlüssel finden Sie unter Kryptografie mit Wikipedia (Public Key).For more information about Public Key Cryptography, see Wikipedia - Public Key Cryptography.

Um eine Richtlinie für die Protokollierung geschützter Ereignisse zu aktivieren, stellen Sie einen öffentlichen Schlüssel für alle Computer bereit, die zu schützende Ereignisprotokoll Daten aufweisen.To enable a Protected Event Logging policy, deploy a public key to all machines that have event log data to protect. Der entsprechende private Schlüssel wird verwendet, um die Ereignisprotokolle an einem sichereren Speicherort, z. b. einem zentralen Ereignisprotokoll Sammler oder einem Siem -Aggregator, zu verarbeiten.The corresponding private key is used to post-process the event logs at a more secure location such as a central event log collector, or SIEM aggregator. Sie können Siem in Azure einrichten.You can set up SIEM in Azure. Weitere Informationen finden Sie unter generische Siem-Integration.For more information, see Generic SIEM integration.

Aktivieren der Protokollierung geschützter Ereignisse über GruppenrichtlinieEnabling Protected Event Logging via Group Policy

Um die Protokollierung geschützter Ereignisse zu aktivieren, aktivieren Sie die Enable Protected Event Logging Funktion in Gruppenrichtlinie Administrative Templates -> Windows Components -> Event Logging .To enable Protected Event Logging, enable the Enable Protected Event Logging feature in Group Policy through Administrative Templates -> Windows Components -> Event Logging. Diese Einstellung erfordert ein Verschlüsselungs Zertifikat, das Sie in einer von mehreren Formularen bereitstellen können:This setting requires an encryption certificate, which you can provide in one of several forms:

  • Der Inhalt eines Base64-codierten X. 509 64-Zertifikats (z. b., wie von der- Export Option im Zertifikat-Manager angeboten).The content of a base-64 encoded X.509 certificate (for example, as offered by the Export option in Certificate Manager).
  • Der Fingerabdruck eines Zertifikats, das sich im Zertifikat Speicher des lokalen Computers befindet (kann von der PKI-Infrastruktur bereitgestellt werden).The thumbprint of a certificate that can be found in the Local Machine certificate store (can be deployed by PKI infrastructure).
  • Der vollständige Pfad zu einem Zertifikat (kann lokal oder eine Remote Freigabe sein).The full path to a certificate (can be local, or a remote share).
  • Der Pfad zu einem Verzeichnis, das ein Zertifikat oder Zertifikate enthält (kann lokal oder eine Remote Freigabe sein).The path to a directory containing a certificate or certificates (can be local, or a remote share).
  • Der Antragsteller Name eines Zertifikats, das sich im Zertifikat Speicher des lokalen Computers befindet (kann von der PKI-Infrastruktur bereitgestellt werden).The subject name of a certificate that can be found in the Local Machine certificate store (can be deployed by PKI infrastructure).

Das resultierende Zertifikat muss Document Encryption als erweiterte Schlüssel Verwendung () verwendet 1.3.6.1.4.1.311.80.1 werden, und entweder die- Data Encipherment oder- Key Encipherment Schlüssel Verwendungen sind aktiviert.The resulting certificate must have Document Encryption as an enhanced key usage (1.3.6.1.4.1.311.80.1), and either Data Encipherment or Key Encipherment key usages enabled.

Warnung

Der private Schlüssel sollte nicht für die Protokollierungs Ereignisse der Computer bereitgestellt werden.The private key shouldn't be deployed to the machines logging events. Er sollte an einem sicheren Ort aufbewahrt werden, an dem die Nachrichten entschlüsselt werden.It should be kept in a secure location where you decrypt the messages.

Entschlüsseln von Meldungen zur Protokollierung geschützter EreignisseDecrypting Protected Event Logging messages

Das folgende Skript ruft ab und entschlüsselt Sie, wobei angenommen wird, dass Sie über den privaten Schlüssel verfügen:The following script will retrieve and decrypt, assuming that you have the private key:

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

Weitere InformationenSee also

about_Logging_Non-Windowsabout_Logging_Non-Windows

PowerShell-Blue TeamPowerShell the Blue Team

Generische SIEM-IntegrationGeneric SIEM integration