共用方式為


Get-CmsMessage

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

語法

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

Description

Get-CmsMessage Cmdlet 會取得已使用密碼編譯訊息語法 (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

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

參數

-Content

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

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-LiteralPath

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

類型:String
Position:1
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Path

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

類型:String
Position:1
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False