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 theExport
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