Informacje o oknach rejestrowaniaAbout Logging Windows

Krótki opisShort description

Program PowerShell rejestruje operacje wewnętrzne z aparatu, dostawców i poleceń cmdlet do dziennika zdarzeń systemu Windows.PowerShell logs internal operations from the engine, providers, and cmdlets to the Windows event log.

Długi opisLong description

Program PowerShell rejestruje szczegółowe informacje o operacjach programu PowerShell, takich jak uruchamianie i zatrzymywanie aparatu i dostawców oraz wykonywanie poleceń programu PowerShell.PowerShell logs details about PowerShell operations, such as starting and stopping the engine and providers, and executing PowerShell commands.

Uwaga

Windows PowerShell w wersji 3,0, 4,0, 5,0 i 5,1 zawierają polecenia cmdlet dla dzienników zdarzeń systemu Windows.Windows PowerShell versions 3.0, 4.0, 5.0, and 5.1 include EventLog cmdlets for the Windows event logs. W tych wersjach, aby wyświetlić listę typów poleceń cmdlet dziennika zdarzeń : Get-Command -Noun EventLog .In those versions, to display the list of EventLog cmdlets type: Get-Command -Noun EventLog. Aby uzyskać więcej informacji, zobacz dokumentację poleceń cmdlet i about_EventLogs dla używanej wersji programu Windows PowerShell.For more information, see the cmdlet documentation and about_EventLogs for your version of Windows PowerShell.

Wyświetlanie wpisów dziennika zdarzeń programu PowerShell w systemie WindowsViewing the PowerShell event log entries on Windows

Dzienniki programu PowerShell można wyświetlać przy użyciu Podgląd zdarzeń systemu Windows.PowerShell logs can be viewed using the Windows Event Viewer. Dziennik zdarzeń znajduje się w grupie Dzienniki aplikacji i usług i nosi nazwę PowerShellCore .The event log is located in the Application and Services Logs group and is named PowerShellCore. Skojarzony dostawca ETW GUID jest {f90714a8-5509-434a-bf6d-b1624c8a19a2} .The associated ETW provider GUID is {f90714a8-5509-434a-bf6d-b1624c8a19a2}.

Po włączeniu rejestrowania blokowania skryptów program PowerShell rejestruje następujące zdarzenia w PowerShellCore/Operational dzienniku:When Script Block Logging is enabled, PowerShell logs the following events to the PowerShellCore/Operational log:

PoleField WartośćValue
EventIdEventId 4104 / 0x1008
KanałChannel Operational
PoziomLevel Verbose
Kod operacjiOpcode Create
ZadanieTask CommandStart
Słowo kluczoweKeyword Runspace

Rejestrowanie dostawcy zdarzeń programu PowerShell w systemie WindowsRegistering the PowerShell event provider on Windows

W przeciwieństwie do systemu Linux lub macOS, system Windows wymaga zarejestrowania dostawcy zdarzeń, aby można było zapisać zdarzenia w dzienniku zdarzeń.Unlike Linux or macOS, Windows requires the event provider to be registered before events can be written to the event log. Aby włączyć dostawcę zdarzeń programu PowerShell, uruchom następujące polecenie w wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień.To enable the PowerShell event provider, run the following command from an elevated PowerShell prompt.

$PSHOME\RegisterManifest.ps1

Wyrejestrowywanie dostawcy zdarzeń programu PowerShell w systemie WindowsUnregistering the PowerShell event provider on Windows

Rejestracja dostawcy zdarzeń umieszcza blokadę w bibliotece binarnej służącej do dekodowania zdarzeń.Registering the event provider places a lock in the binary library used to decode events. Aby zaktualizować tę bibliotekę, należy wyrejestrować dostawcę w celu zwolnienia tej blokady.To update this library, the provider must be unregistered to release this lock.

Aby wyrejestrować dostawcę programu PowerShell, uruchom następujące polecenie w wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień.To unregister the PowerShell provider, run the following command from an elevated PowerShell prompt.

$PSHOME\RegisterManifest.ps1 -Unregister

Po zaktualizowaniu programu PowerShell uruchom polecenie, $PSHOME\RegisterManifest.ps1 Aby zarejestrować zaktualizowanego dostawcę zdarzeń.After updating PowerShell, run $PSHOME\RegisterManifest.ps1 to register the updated event provider.

Włączanie rejestrowania bloku skryptuEnabling Script Block Logging

Po włączeniu rejestrowania bloku skryptu program PowerShell rejestruje zawartość wszystkich bloków skryptów, które przetwarza.When you enable Script Block Logging, PowerShell records the content of all script blocks that it processes. Po włączeniu każdej nowej sesji programu PowerShell są rejestrowane te informacje.Once enabled, any new PowerShell session logs this information.

Uwaga

Zaleca się włączenie chronionego rejestrowania zdarzeń, jak opisano poniżej, podczas korzystania z rejestrowania bloków skryptów dla innych elementów niż w celach diagnostycznych.It's recommended to enable Protected Event Logging, as described below, when using Script Block Logging for anything other than diagnostics purposes.

Rejestrowanie bloku skryptu można włączyć za pośrednictwem zasady grupy lub ustawienia rejestru.Script Block Logging can be enabled via Group Policy or a registry setting.

Za pomocą zasad grupyUsing Group Policy

Aby włączyć automatyczne transkrypcję, Włącz Turn on PowerShell Script Block Logging funkcję w zasady grupy przez 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.

Korzystanie z rejestruUsing the Registry

Uruchom następującą funkcję: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"
}

Rejestrowanie zdarzeń chronionychProtected Event Logging

Zwiększenie poziomu rejestrowania w systemie zwiększa prawdopodobieństwo, że zarejestrowana zawartość może zawierać poufne dane.Increasing the level of logging on a system increases the possibility that logged content may contain sensitive data. Na przykład po włączeniu rejestrowania skryptów poświadczenia lub inne poufne dane używane przez skrypt mogą być zapisywane w dzienniku zdarzeń.For example, with script logging enabled, credentials or other sensitive data used by a script can be written to the event log. W przypadku naruszenia zabezpieczeń komputera, na którym rejestrowane są poufne dane, dzienniki mogą zapewnić atakującemu informacje konieczne do rozbudowania zasięgu.When a machine that has logged sensitive data is compromised, the logs can provide an attacker with information needed to extend their reach.

Aby chronić te informacje, system Windows 10 wprowadza chronione rejestrowanie zdarzeń.To protect this information, Windows 10 introduces Protected Event Logging. Rejestrowanie zdarzeń chronionych umożliwia aplikacjom uczestniczącym szyfrowanie poufnych danych zapisywana w dzienniku zdarzeń.Protected Event Logging lets participating applications encrypt sensitive data written to the event log. Później można odszyfrować i przetworzyć te dzienniki na bardziej bezpieczny i scentralizowany moduł zbierający dzienniki.Later, you can decrypt and process these logs on a more secure and centralized log collector.

Zawartość dziennika zdarzeń jest chroniona przy użyciu standardowej składni wiadomości (CMS) IETF.Event log content is protected using the IETF Cryptographic Message Syntax (CMS) standard. CMS używa kryptografii klucza publicznego.CMS uses public key cryptography. Klucze używane do szyfrowania zawartości i odszyfrowywania zawartości są przechowywane oddzielnie.The keys used to encrypt content and decrypt content are kept separate.

Klucz publiczny może być współużytkowany w szerokim zakresie i niewrażliwych danych.The public key can be shared widely and isn't sensitive data. Każda zawartość zaszyfrowana za pomocą tego klucza publicznego może zostać odszyfrowana tylko przez klucz prywatny.Any content encrypted with this public key can only be decrypted by the private key. Aby uzyskać więcej informacji na temat kryptografii klucza publicznego, zobacz witrynę Wikipedia — Kryptografia klucza publicznego.For more information about Public Key Cryptography, see Wikipedia - Public Key Cryptography.

Aby włączyć chronione zasady rejestrowania zdarzeń, należy wdrożyć klucz publiczny na wszystkich komputerach, które mają dane dziennika zdarzeń do ochrony.To enable a Protected Event Logging policy, deploy a public key to all machines that have event log data to protect. Odpowiedni klucz prywatny jest używany do przetwarzania dzienników zdarzeń w bezpieczniejszej lokalizacji, takiej jak centralny moduł zbierający dzienniki zdarzeń lub agregator Siem .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. Możesz skonfigurować SIEM na platformie Azure.You can set up SIEM in Azure. Aby uzyskać więcej informacji, zobacz ogólna integracja z Siem.For more information, see Generic SIEM integration.

Włączanie rejestrowania zdarzeń chronionych za pośrednictwem zasady grupyEnabling Protected Event Logging via Group Policy

Aby włączyć rejestrowanie zdarzeń chronionych, Włącz Enable Protected Event Logging funkcję w zasady grupy przez 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. To ustawienie wymaga certyfikatu szyfrowania, który można podać w jednej z kilku form:This setting requires an encryption certificate, which you can provide in one of several forms:

  • Zawartość certyfikatu X. 509 z kodowaniem Base-64 (na przykład zgodnie z Export opcją w Menedżerze certyfikatów).The content of a base-64 encoded X.509 certificate (for example, as offered by the Export option in Certificate Manager).
  • Odcisk palca certyfikatu, który można znaleźć w magazynie certyfikatów komputera lokalnego (może zostać wdrożony przez infrastrukturę PKI).The thumbprint of a certificate that can be found in the Local Machine certificate store (can be deployed by PKI infrastructure).
  • Pełna ścieżka do certyfikatu (może być lokalna lub współudział zdalny).The full path to a certificate (can be local, or a remote share).
  • Ścieżka do katalogu zawierającego certyfikat lub certyfikaty (może być lokalna lub udział zdalny).The path to a directory containing a certificate or certificates (can be local, or a remote share).
  • Nazwa podmiotu certyfikatu, który znajduje się w magazynie certyfikatów komputera lokalnego (może zostać wdrożony przez infrastrukturę PKI).The subject name of a certificate that can be found in the Local Machine certificate store (can be deployed by PKI infrastructure).

Otrzymany certyfikat musi mieć Document Encryption jako ulepszone użycie klucza ( 1.3.6.1.4.1.311.80.1 ), a oba Data Encipherment lub klucze zostały Key Encipherment włączone.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.

Ostrzeżenie

Klucza prywatnego nie należy wdrażać na maszynach rejestrowania zdarzeń.The private key shouldn't be deployed to the machines logging events. Powinno być przechowywane w bezpiecznej lokalizacji, w której są odszyfrowane komunikaty.It should be kept in a secure location where you decrypt the messages.

Odszyfrowywanie chronionych komunikatów rejestrowania zdarzeńDecrypting Protected Event Logging messages

Następujący skrypt zostanie pobrany i odszyfrowany, przy założeniu, że masz klucz prywatny: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

Zobacz teżSee also

about_Logging_Non — Windowsabout_Logging_Non-Windows

Program PowerShell dla niebieskiego zespołuPowerShell the Blue Team

Ogólna integracja rozwiązania SIEMGeneric SIEM integration