次の方法で共有


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

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

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

-EventLogRecord

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

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

-IncludeContext

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

-LiteralPath

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

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

-Path

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

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

-To

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

  • (証明書プロバイダーから取得された) 実際の証明書。
  • 証明書を含むファイルへのパス。
  • 証明書を含むディレクトリへのパス。
  • 証明書の拇印 (証明書ストアの検索に使用されます)。
  • 証明書のサブジェクト名 (証明書ストアの検索に使用されます)。
型:CmsMessageRecipient[]
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

EventLogRecord

String

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

出力

String

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