Share via


Get-CmsMessage

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

Syntax

Get-CmsMessage
   [-Content] <String>
   [<CommonParameters>]
Get-CmsMessage
   [-Path] <String>
   [<CommonParameters>]
Get-CmsMessage
   [-LiteralPath] <String>
   [<CommonParameters>]

Description

Cmdlet Get-CmsMessage 會取得使用密碼編譯訊息語法 (CMS) 格式加密的內容。

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

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

Get-CmsMessage 取得以 CMS 格式加密的內容。 它不會解密或取消保護內容。 您可以執行此 Cmdlet,藉由執行 Protect-CmsMessage Cmdlet 來取得您已加密的內容。 您可以指定要解密為字串的內容,或透過加密內容的路徑來指定。 您可以使用管線將 的結果 Get-CmsMessage 傳送至 Unprotect-CmsMessage 來解密內容,前提是您有用來加密內容的檔加密憑證相關信息。

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

範例

範例 1:取得加密的內容

$Msg = Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
$Msg.Content

-----BEGIN CMS-----
MIIBqAYJKoZIhvcNAQcDoIIBmTCCAZUCAQAxggFQMIIBTAIBADA0MCAxHjAcBgNVBAMBFWxlZWhv
bG1AbGljcm9zb2Z0LmNvbQIQQYHsbcXnjIJCtH+OhGmc1DANBgkqhkiG9w0BAQcwAASCAQAnkFHM
proJnFy4geFGfyNmxH3yeoPvwEYzdnsoVqqDPAd8D3wao77z7OhJEXwz9GeFLnxD6djKV/tF4PxR
E27aduKSLbnxfpf/sepZ4fUkuGibnwWFrxGE3B1G26MCenHWjYQiqv+Nq32Gc97qEAERrhLv6S4R
G+2dJEnesW8A+z9QPo+DwYP5FzD0Td0ExrkswVckpLNR6j17Yaags3ltNXmbdEXekhi6Psf2MLMP
TSO79lv2L0KeXFGuPOrdzPRwCkV0vNEqTEBeDnZGrjv/5766bM3GW34FXApod9u+VSFpBnqVOCBA
DVDraA6k+xwBt66cV84AHLkh0kT02SIHMDwGCSqGSIb3DQEHATAdBglghkgBZQMEASoEEJbJaiRl
KMnBoD1dkb/FzSWAEBaL8xkFwCu0e1AtDj7nSJc=
-----END CMS-----

此命令會取得位於 C:\Users\Test\Documents\PowerShell\Future_Plans.txt的加密內容。

範例 2:將加密的內容管線傳送至 Unprotect-CmsMessage

$Msg = Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
$Msg | Unprotect-CmsMessage -To "cn=youralias@emailaddress.com"

Try the new Break All command

此命令會將 Cmdlet 的結果 Get-CmsMessage 從範例 1 傳送至 Unprotect-CmsMessage,以解密訊息並以純文本讀取。 在此情況下,To 參數的值是加密憑證主體行的值。 解密的訊息「試用新的全部中斷命令」是結果。

參數

-Content

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False