Unprotect-CmsMessage
使用密碼編譯訊息語法格式解密已加密的內容。
語法
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
Cmdlet 會 Unprotect-CmsMessage
使用密碼編譯訊息語法 (CMS) 格式來解密已加密的內容。
CMS Cmdlet 支援使用 IETF 標準格式加密和解密內容,以密碼編譯方式保護訊息,如RFC5652所述。
CMS 加密標準會使用公鑰密碼編譯,其中用來加密內容的密鑰(公鑰)和用來解密內容的金鑰(私鑰)是分開的。 您的公鑰可以廣泛共用,而且不是敏感數據。 如果有任何內容使用此公鑰加密,則只有您的私鑰才能解密。 如需詳細資訊,請參閱 公鑰密碼編譯。
Unprotect-CmsMessage
解密以 CMS 格式加密的內容。 您可以執行此 Cmdlet,藉由執行 Protect-CmsMessage
Cmdlet 來解密已加密的內容。 您可以藉由加密事件記錄識別碼或加密內容的路徑,指定您想要解密為字串的內容。 Cmdlet 會 Unprotect-CmsMessage
傳回解密的內容。
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 |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-EventLogRecord
指定包含 CMS 加密訊息的事件記錄檔記錄。
類型: | PSObject |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-IncludeContext
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-LiteralPath
指定要解密之加密內容的路徑。 與 Path 不同,LiteralPath 的值會完全依照其類型一樣使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Path
指定要解密之加密內容的路徑。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-To
指定以下欄任何格式識別的一或多個 CMS 郵件收件者:
- 實際憑證(如從憑證提供者擷取)。
- 包含憑證之檔案的路徑。
- 包含憑證之目錄的路徑。
- 憑證的指紋(用來查看證書存儲)。
- 憑證的主體名稱(用來查看證書存儲)。
類型: | CmsMessageRecipient[] |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將包含加密內容的物件傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回未加密的訊息。