共用方式為


Unprotect-CmsMessage

使用密碼編譯訊息語法格式解密已加密的內容。

語法

ByWinEvent (預設值)

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

Unprotect-CmsMessage Cmdlet 會使用密碼編譯訊息語法 (CMS) 格式來解密已加密的內容。

CMS Cmdlet 支援使用 IETF 標準格式加密和解密內容,以密碼編譯方式保護訊息,如 RFC5652所記載。

CMS 加密標準會使用公鑰密碼編譯,其中用來加密內容的密鑰(公鑰)和用來解密內容的金鑰(私鑰)是分開的。 您的公鑰可以廣泛共用,而且不是敏感數據。 如果有任何內容使用此公鑰加密,則只有您的私鑰才能解密。 如需詳細資訊,請參閱 公鑰密碼編譯

Unprotect-CmsMessage 解密以 CMS 格式加密的內容。 您可以執行此 Cmdlet,藉由執行 Protect-CmsMessage Cmdlet 來解密已加密的內容。 您可以藉由加密事件記錄識別碼或加密內容的路徑,指定您想要解密為字串的內容。 Unprotect-CmsMessage Cmdlet 會傳回解密的內容。

PowerShell 7.1 已新增 Linux 和 macOS 的支援。

範例

範例 1:解密訊息

在下列範例中,您會將位於常值路徑的內容解密 C:\Users\Test\Documents\PowerShell。 針對必要 To 參數的值,此範例會使用用來執行加密的憑證指紋。 解密的訊息「試用新的全部中斷命令」是結果。

$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

範例 2:解密加密的事件記錄檔訊息

下列範例會從 PowerShell 事件記錄檔取得加密事件,並使用 Unprotect-CmsMessage解密它。

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

範例 3:使用管線解密加密的事件記錄檔訊息

下列範例會從 PowerShell 事件記錄檔取得所有加密的事件,並使用 Unprotect-CmsMessage解密。

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

參數

-Content

指定加密字串,或包含加密字串的變數。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByContent
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-EventLogRecord

指定包含 CMS 加密訊息的事件記錄檔記錄。

參數屬性

類型:PSObject
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByWinEvent
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-IncludeContext

Unprotect-CmsMessage Cmdlet 會使用密碼編譯訊息語法 (CMS) 格式來解密已加密的內容。

CMS Cmdlet 支援使用 IETF 標準格式加密和解密內容,以密碼編譯方式保護訊息,如 RFC5652所記載。

CMS 加密標準會使用公鑰密碼編譯,其中用來加密內容的密鑰(公鑰)和用來解密內容的金鑰(私鑰)是分開的。 您的公鑰可以廣泛共用,而且不是敏感數據。 如果有任何內容使用此公鑰加密,則只有您的私鑰才能解密。 如需詳細資訊,請參閱 公鑰密碼編譯

Unprotect-CmsMessage 解密以 CMS 格式加密的內容。 您可以執行此 Cmdlet,藉由執行 Protect-CmsMessage Cmdlet 來解密已加密的內容。 您可以藉由加密事件記錄識別碼或加密內容的路徑,指定您想要解密為字串的內容。 Unprotect-CmsMessage Cmdlet 會傳回解密的內容。

PowerShell 7.1 已新增 Linux 和 macOS 的支援。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-LiteralPath

指定要解密之加密內容的路徑。 不同於 PathLiteralPath 的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByLiteralPath
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

指定要解密之加密內容的路徑。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByPath
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-To

指定一個或多個 CMS 郵件收件者,可使用以下任何格式識別:

  • 從證書提供者獲取的證書。
  • 包含憑證之檔案的路徑。
  • 包含憑證之目錄的路徑。
  • 憑證的指紋(用來查看憑證庫)。
  • 憑證的主題名稱(用於在憑證存儲區中查找)。

參數屬性

類型:

CmsMessageRecipient[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:1
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

EventLogRecord

String

您可以使用管線將包含加密內容的物件傳送至此 Cmdlet。

輸出

String

此 Cmdlet 會傳回未加密的訊息。