Share via


Unprotect-CmsMessage

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

構文

Unprotect-CmsMessage
         [-EventLogRecord] <EventLogRecord>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-Content] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-Path] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]
Unprotect-CmsMessage
         [-LiteralPath] <string>
         [[-To] <CmsMessageRecipient[]>]
         [-IncludeContext]
         [<CommonParameters>]

説明

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

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

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

Unprotect-CmsMessage は、CMS 形式で暗号化されたコンテンツを復号化します。 このコマンドレットを実行して、暗号化したコンテンツを復号化するには、コマンドレットを Protect-CmsMessage 実行します。 暗号化解除するコンテンツを文字列として、暗号化イベント ログ レコード ID 番号、または暗号化されたコンテンツへのパスで指定できます。 コマンドレットは Unprotect-CmsMessage 、復号化されたコンテンツを返します。

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

例 1: メッセージの暗号化を解除する

次の例では、リテラル パスにあるコンテンツを復号化します C:\Users\Test\Documents\PowerShell。 必須 の To パラメーターの値に対して、この例では暗号化の実行に使用された証明書の拇印を使用します。 復号化されたメッセージ "Try the new Break All command" が結果になります。

$parameters = @{
  LiteralPath = "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
  To = '0f 8j b1 ab e0 ce 35 1d 67 d2 f2 6f a2 d2 00 cl 22 z9 m9 85'
}
Unprotect-CmsMessage -LiteralPath @parameters

Try the new Break All command

例 2: 暗号化されたイベント ログ メッセージの暗号化を解除する

次の例では、PowerShell イベント ログから暗号化されたイベントを取得し、Unprotect-CmsMessage

$event = Get-WinEvent Microsoft-Windows-PowerShell/Operational -MaxEvents 1 |
    Where-Object Id -eq 4104
Unprotect-CmsMessage -EventLogRecord $event

例 3: パイプラインを使用して暗号化されたイベント ログ メッセージを復号化する

次の例では、PowerShell イベント ログから暗号化されたすべてのイベントを取得し、それを使用して Unprotect-CmsMessage暗号化を解除します。

Get-WinEvent Microsoft-Windows-PowerShell/Operational |
    Where-Object Id -eq 4104 |
    Unprotect-CmsMessage

パラメーター

-Content

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

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

-EventLogRecord

CMS で暗号化されたメッセージを含むイベント ログ レコードを指定します。

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

-IncludeContext

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

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

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

-Path

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

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

-To

次のいずれかの形式で識別される 1 つ以上の CMS メッセージ受信者を指定します。

  • (証明書プロバイダーから取得された) 実際の証明書。
  • 証明書を含むファイルへのパス。
  • 証明書を含むディレクトリへのパス。
  • 証明書の拇印 (証明書ストアの検索に使用されます)。
  • 証明書のサブジェクト名 (証明書ストアの検索に使用されます)。
Type:CmsMessageRecipient[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

EventLogRecord

String

暗号化されたコンテンツを含むオブジェクトをこのコマンドレットにパイプできます。

出力

String

このコマンドレットは、暗号化されていないメッセージを返します。