Get-CmsMessage

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

語法

ByContent

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

ByPath

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

ByLiteralPath

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

Description

該 Get-CmsMessage cmdlet 取得的內容是使用加密訊息語法(CMS)格式加密的。

CMS 指令小程式支援使用 IETF 格式進行內容加密與解密,以加密保護訊息,如 RFC5652 所記錄。

CMS 加密標準使用公開金鑰密碼學,其中用於加密內容的金鑰(公鑰)與用於解密內容的金鑰(私鑰)是分開的。 你的公鑰可以被廣泛分享,且不是敏感資料。 如果任何內容都用這個公鑰加密,只有你的私鑰能解密它。 欲了解更多資訊,請參閱 公鑰密碼學。

Get-CmsMessage 取得已加密成 CMS 格式的內容。 它不會解密或解除保護內容。 你可以執行這個 cmdlet,透過執行 Protect-CmsMessage 它來取得你加密過的內容。 你可以指定想要解密的內容為字串,或依加密內容的路徑指定。 只要你有關於用於加密內容的文件加密憑證的資訊,你可以將 to Unprotect-CmsMessage 的結果Get-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 碼結果導向 Unprotect-CmsMessage,以解密訊息並以明文讀取。 在此情況下, To 參數的值即為加密憑證主旨行的值。 結果是解密後的訊息:「試試新的 Break All 指令」。

參數

-Content

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

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByContent
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-LiteralPath

指定你想要取得加密內容的路徑。 與 Path 不同, LiteralPath 的值是完全按照其型別使用。 不會將任何字元解譯為通配符。 如果路徑包含跳脫字元,請用單引號包圍每個跳脫字元。 單引號告訴 PowerShell 不要將包裹的字元解讀為跳脫字元。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByLiteralPath
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

指定你想解密的加密內容路徑。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

ByPath
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。