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。