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

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

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