Sdílet prostřednictvím


Unprotect-CmsMessage

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

Syntaxe

ByWinEvent (Výchozí)

Unprotect-CmsMessage
    [-EventLogRecord] <EventLogRecord>
    [[-To] <CmsMessageRecipient[]>]
    [-IncludeContext]
    [<CommonParameters>]

ByContent

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

ByPath

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

ByLiteralPath

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

Description

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

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 š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ý na doslovné cestě C:\Users\Test\Documents\PowerShell. Pro hodnotu požadovaného parametru To používá tento příklad kryptografický otisk certifikátu použitého 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šifrovat šifrované zprávy z 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.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

ByContent
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-EventLogRecord

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

Vlastnosti parametru

Typ:PSObject
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

ByWinEvent
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-IncludeContext

Určuje, zda se má dešifrovaný obsah zahrnout do původního kontextu, a ne výstup pouze dešifrovaného obsahu.

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-LiteralPath

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

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

ByLiteralPath
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Path

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

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

ByPath
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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ý z poskytovatele certifikátů)
  • Cesta k souboru obsahujícímu certifikát
  • Cesta k adresáři obsahujícímu certifikát
  • Otisk prstu certifikátu (používaný k vyhledávání v úložišti certifikátů)
  • Název subjektu certifikátu (slouží k vyhledání v úložišti certifikátů).

Vlastnosti parametru

Typ:

CmsMessageRecipient[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:1
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

EventLogRecord

String

Objekt obsahující šifrovaný obsah můžete předat tomuto cmdletu.

Výstupy

String

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