Unprotect-CmsMessage

Dešifruje obsah, který byl zašifrován pomocí formátu syntaxe kryptografických zpráv.

Syntax

Unprotect-CmsMessage
         [-EventLogRecord] <EventLogRecord>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-Content] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-Path] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-LiteralPath] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]

Description

Rutina Unprotect-CmsMessage dešifruje obsah, který byl zašifrován pomocí formátu Cryptographic Message Syntax (CMS).

Rutiny CMS podporují šifrování a dešifrování obsahu pomocí standardního formátu IETF pro kryptograficky chráněné zprávy, jak je zdokumentované RFC5652.

Šifrovací standard CMS používá kryptografii veřejného klíče, kde jsou klíče používané k šifrování obsahu (veřejného klíče) a klíče používané k dešifrování obsahu (privátního klíče) oddělené. Veřejný klíč je možné sdílet široce a nejedná se o citlivá data. Pokud je jakýkoli obsah zašifrovaný tímto veřejným klíčem, může ho dešifrovat jenom váš privátní klíč. Další informace naleznete v tématu Kryptografie veřejného klíče.

Unprotect-CmsMessage dešifruje obsah zašifrovaný ve formátu CMS. Tuto rutinu můžete spustit a dešifrovat obsah, který jste zašifrovali spuštěním rutiny Protect-CmsMessage . Můžete zadat obsah, který chcete dešifrovat jako řetězec, pomocí čísla ID záznamu protokolu událostí šifrování nebo cestou k šifrovaného obsahu. Rutina Unprotect-CmsMessage vrátí dešifrovaný obsah.

Podpora pro Linux a macOS byla přidána v PowerShellu 7.1.

Příklady

Příklad 1: Dešifrování zprávy

V následujícím příkladu dešifrujete obsah umístěný v cestě C:\Users\Test\Documents\PowerShellliterálu . Pro hodnotu požadovaného parametru To tento příklad používá kryptografický otisk certifikátu, který byl použit k provedení šifrování. Dešifrovaná zpráva Try the new Break All command (Vyzkoušet nový příkaz Break All) je výsledkem.

$parameters = @{
  LiteralPath = "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
  To = '0f 8j b1 ab e0 ce 35 1d 67 d2 f2 6f a2 d2 00 cl 22 z9 m9 85'
}
Unprotect-CmsMessage -LiteralPath @parameters

Try the new Break All command

Příklad 2: Dešifrování zašifrované zprávy protokolu událostí

Následující příklad získá zašifrovanou událost z protokolu událostí PowerShellu a dešifruje ji pomocí Unprotect-CmsMessage.

$event = Get-WinEvent Microsoft-Windows-PowerShell/Operational -MaxEvents 1 |
    Where-Object Id -eq 4104
Unprotect-CmsMessage -EventLogRecord $event

Příklad 3: Dešifrování šifrovaných zpráv protokolu událostí pomocí kanálu

Následující příklad získá všechny šifrované události z protokolu událostí PowerShellu a dešifruje je pomocí Unprotect-CmsMessage.

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

Parametry

-Content

Určuje šifrovaný řetězec nebo proměnnou obsahující šifrovaný řetězec.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-EventLogRecord

Určuje záznam protokolu událostí, který obsahuje zašifrovanou zprávu CMS.

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IncludeContext

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Určuje cestu k šifrovaného obsahu, který chcete dešifrovat. Na rozdíl od cesty se hodnota LiteralPath používá přesně tak, jak je zadaná. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

Určuje cestu k šifrovaného obsahu, který chcete dešifrovat.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-To

Určuje jednoho nebo více příjemců zpráv CMS identifikovaných v některém z následujících formátů:

  • Skutečný certifikát (načtený od zprostředkovatele certifikátu)
  • Cesta k souboru obsahujícímu certifikát
  • Cesta k adresáři obsahujícímu certifikát
  • Kryptografický otisk certifikátu (použitý k vyhledání v úložišti certifikátů)
  • Název subjektu certifikátu (slouží k vyhledání v úložišti certifikátů).
Type:CmsMessageRecipient[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

EventLogRecord

String

Objekt obsahující šifrovaný obsah můžete do této rutiny převést.

Výstupy

String

Tato rutina vrátí nešifrovanou zprávu.