about_Logging

Krátký popis

PowerShell protokoluje interní operace z modulu, poskytovatelů a rutin do protokolu událostí Windows.

Dlouhý popis

PowerShell protokoluje podrobnosti o operacích PowerShellu, jako je spuštění a zastavení modulu a poskytovatelů a spouštění příkazů PowerShellu.

Poznámka:

Windows PowerShell 5.1 (a starší) obsahuje rutiny EventLog pro protokoly událostí Windows. V těchto verzích zobrazíte seznam rutin EventLog typu: Get-Command -Noun EventLog. Další informace najdete v dokumentaci k rutinám a about_EventLogs pro vaši verzi Windows PowerShellu.

Informace o protokolování v PowerShellu 7 najdete v následujících článcích:

Zobrazení položek protokolu událostí PowerShellu ve Windows

Protokoly PowerShellu je možné zobrazit pomocí windows Prohlížeč událostí. Protokol událostí se nachází ve skupině Protokoly aplikací a služeb a má název Microsoft-Windows-PowerShell. Přidružený zprostředkovatel GUID Trasování událostí pro Windows je {A0C1853B-5C40-4B15-8766-3CF1C58F985A}.

Pokud je protokolování bloku skriptu povolené, PowerShell protokoluje následující události do protokolu Microsoft-Windows-PowerShell/Operational :

Pole Hodnota
EventId 4104 / 0x1008
Kanál Operational
Level Verbose
Opcode Create
Úloha CommandStart
Klíčové slovo Runspace

Povolení protokolování bloku skriptu

Když povolíte protokolování bloku skriptu, PowerShell zaznamená obsah všech skriptů, které zpracovává. Po povolení protokoluje všechny nové relace PowerShellu tyto informace.

Poznámka:

Pokud chcete zajistit, aby byla citlivá data chráněná, povolte protokolování chráněných událostí při použití protokolování blokování skriptu pro jakékoli jiné účely než pro účely diagnostiky.

Protokolování bloku skriptu je možné povolit prostřednictvím zásad skupiny nebo nastavení registru.

Používání zásad skupiny

Pokud chcete povolit automatický přepis, povolte funkci Zapnout protokolování bloků skriptů PowerShellu v zásadách skupiny prostřednictvím Správa istrativních šablon ->Součásti systému Windows ->Windows PowerShell.

Použití registru

Spusťte následující funkci:

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"
}

Protokolování chráněných událostí

Zvýšení úrovně protokolování v systému zvyšuje možnost, že protokolovaný obsah může obsahovat citlivá data. Například s povoleným protokolováním skriptu, přihlašovacími údaji nebo jinými citlivými daty používanými skriptem lze zapisovat do protokolu událostí. Když dojde k ohrožení zabezpečení počítače s protokolovanými citlivými daty, můžou protokoly útočníkovi poskytnout informace potřebné k rozšíření dosahu.

Pro ochranu těchto informací systém Windows 10 zavádí protokolování chráněných událostí. Protokolování chráněných událostí umožňuje zúčastněným aplikacím šifrovat citlivá data zapsaná do protokolu událostí. Později můžete tyto protokoly dešifrovat a zpracovat v bezpečnějším a centralizovanějším kolektoru protokolů.

Obsah protokolu událostí je chráněn pomocí standardu IETF Cryptographic Message Syntax (CMS). CMS používá kryptografii veřejného klíče. Klíče používané k šifrování obsahu a dešifrování obsahu se uchovávají odděleně.

Veřejný klíč je možné sdílet široce a nejedná se o citlivá data. Veškerý obsah zašifrovaný tímto veřejným klíčem je možné dešifrovat pouze privátním klíčem. Další informace o kryptografii veřejného klíče naleznete na Wikipedii - Kryptografie veřejného klíče.

Pokud chcete povolit zásadu protokolování chráněných událostí, nasaďte veřejný klíč do všech počítačů, které mají data protokolu událostí k ochraně. Odpovídající privátní klíč se používá k následnému zpracování protokolů událostí v bezpečnějším umístění, jako je centrální kolektor protokolu událostí nebo agregátor SIEM . SiEM můžete nastavit v Azure. Další informace najdete v tématu Obecná integrace SIEM.

Povolení protokolování chráněných událostí prostřednictvím zásad skupiny

Chcete-li povolit protokolování chráněných událostí, povolte Enable Protected Event Logging funkci v zásadách skupiny prostřednictvím Administrative Templates -> Windows Components -> Event Logging. Toto nastavení vyžaduje šifrovací certifikát, který můžete zadat v jednom z několika formulářů:

  • Obsah certifikátu X.509 s kódováním base-64 (například nabízený možností Export ve Správci certifikátů).
  • Kryptografický otisk certifikátu, který najdete v úložišti certifikátů místního počítače (je možné ho nasadit infrastrukturou PKI).
  • Úplná cesta k certifikátu (může být místní nebo vzdálená sdílená složka).
  • Cesta k adresáři obsahujícímu certifikát nebo certifikáty (může být místní nebo vzdálená sdílená složka).
  • Název subjektu certifikátu, který najdete v úložišti certifikátů místního počítače (je možné ho nasadit infrastrukturou PKI).

Výsledný certifikát musí být povolený Document Encryption jako použití rozšířeného klíče (1.3.6.1.4.1.311.80.1) nebo Data EnciphermentKey Encipherment použití klíčů.

Upozorňující

Privátní klíč by se neměl nasazovat do událostí protokolování počítačů. Měla by být uložena v zabezpečeném umístění, kde dešifrujete zprávy.

Dešifrování zpráv protokolování chráněných událostí

Následující skript načte a dešifruje události za předpokladu, že máte privátní klíč:

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

Viz také