Get-CmsMessage

暗号化メッセージ構文形式を使用して暗号化されたコンテンツを取得します。

構文

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

説明

Get-CmsMessage コマンドレットは、暗号化メッセージ構文 (CMS) 形式を使用して暗号化されたコンテンツを取得します。

CMS コマンドレットは、 RFC5652に記載されているように、メッセージを暗号で保護するために IETF 形式を使用したコンテンツの暗号化と暗号化解除をサポートします。

CMS 暗号化標準では公開キー暗号化が使用されます。ここで、コンテンツの暗号化に使用されるキー (公開キー) と、コンテンツの暗号化解除に使用されるキー (秘密キー) は別々です。 公開キーは広く共有でき、機密性の高いデータではありません。 いずれかのコンテンツがこの公開キーで暗号化された場合、秘密キーのみが暗号化を解除できます。 公開キー暗号化の詳細については、「公開鍵暗号」を参照してください。

Get-CmsMessage は、CMS 形式で暗号化されたコンテンツを取得します。 コンテンツの暗号化解除や保護解除は行われません。 このコマンドレットを実行すると、 Protect-CmsMessage コマンドレットを実行して、暗号化したコンテンツを取得できます。 暗号化を解除するコンテンツを文字列として、または暗号化されたコンテンツへのパスで指定できます。 コンテンツの暗号化に使用されたドキュメント暗号化証明書に関する情報があれば、 Get-CmsMessage の結果をパイプ処理してコンテンツの暗号化を解除 Unprotect-CmsMessage できます。

Linux と macOS のサポートが PowerShell 7.1 で追加されました。

例 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

このコマンドは、 Get-CmsMessage コマンドレットの結果を例 1 から Unprotect-CmsMessageにパイプ処理して、メッセージを復号化し、プレーン テキストで読み取ります。 この場合、 To パラメーターの値は、暗号化証明書のサブジェクト行の値です。 復号化されたメッセージ "Try the new Break All command" が結果になります。

パラメーター

-Content

暗号化された文字列、または暗号化された文字列を含む変数を指定します。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-LiteralPath

取得する暗号化されたコンテンツへのパスを指定します。 Path とは異なり、LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、それぞれを単一引用符で囲みます。 単一引用符は、囲まれた文字をエスケープ文字として解釈しないように PowerShell に指示します。

型:String
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

暗号化を解除する暗号化されたコンテンツへのパスを指定します。

型:String
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False