共用方式為


Get-CmsMessage

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

Syntax

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 來解密內容,前提是您有用來加密內容的檔加密憑證相關信息。

範例

範例 1:取得加密的內容

PS C:\> Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell ISE\Future_Plans.txt"
-----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\ISE\Future_Plans.txt 的加密內容。

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

PS C:\> $Msg = Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell ISE\Future_Plans.txt"
$Msg | Unprotect-CmsMessage -To "cn=youralias@emailaddress.com"
Try the new Break All command

此命令會使用管線將 Get-CmsMessage Cmdlet 的結果從範例 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 的值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請以單引弧括住每一個字元。 單引號會告訴 Windows 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