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 檔會解密使用密碼訊息語法(CMS)格式加密的內容。
CMS 指令小程式支援使用 IETF 標準格式進行內容加密與解密,以加密保護訊息,正如 RFC5652 所記錄。
CMS 加密標準使用公開金鑰密碼學,其中用於加密內容的金鑰(公鑰)與用於解密內容的金鑰(私鑰)是分開的。 你的公鑰可以被廣泛分享,且不是敏感資料。 如果任何內容都用這個公鑰加密,只有你的私鑰能解密它。 欲了解更多資訊,請參閱 公鑰密碼學。
Unprotect-CmsMessage 解密已加密為 CMS 格式的內容。 你可以執行這個 cmdlet 來解密你已經加密 Protect-CmsMessage 的內容。 你可以指定想解密的內容為字串、加密事件日誌記錄 ID 號碼,或是加密內容的路徑。 指令檔會 Unprotect-CmsMessage 回傳解密後的內容。
PowerShell 7.1 新增對 Linux 和 macOS 的支援。
範例
範例 1:解密訊息
在以下範例中,你解密位於字面路徑 C:\Users\Test\Documents\PowerShell的內容。 對於所需的 To 參數值,此範例使用用於加密的憑證的拇指印。 結果是解密後的訊息:「試試新的 Break All 指令」。
$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
決定是否將解密內容納入原始語境,而非僅輸出解密內容。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LiteralPath
指定你想解密的加密內容路徑。 與 Path 不同的是, LiteralPath 的值是完全按照其型別使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知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 訊息接收者,並以以下任一格式識別:
- 真正的憑證(從憑證提供者取得)。
- 路徑指向包含憑證的檔案。
- 通往包含憑證目錄的路徑。
- 憑證的拇指指紋(用來在憑證商店查看)。
- 證書的主旨名稱(用來在證書商店裡查詢)。
參數屬性
| 類型: | |
| 預設值: | 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 回傳未加密訊息。