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 訊息接收者,並以以下任一格式識別:

  • 真正的憑證(從憑證提供者取得)。
  • 路徑指向包含憑證的檔案。
  • 通往包含憑證目錄的路徑。
  • 憑證的拇指指紋(用來在憑證商店查看)。
  • 證書的主旨名稱(用來在證書商店裡查詢)。

參數屬性

類型:

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 回傳未加密訊息。