次の方法で共有


Unprotect-CmsMessage

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

構文

ByWinEvent (既定)

Unprotect-CmsMessage
    [-EventLogRecord] <EventLogRecord>
    [[-To] <CmsMessageRecipient[]>]
    [-IncludeContext]
    [<CommonParameters>]

ByContent

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

ByPath

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

ByLiteralPath

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

説明

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

CMS コマンドレットは、メッセージを暗号化で保護するための IETF 標準形式を使用したコンテンツの暗号化と暗号化解除をサポート RFC5652

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

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

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

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

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

$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
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

ByContent
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-EventLogRecord

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

パラメーターのプロパティ

型:PSObject
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

ByWinEvent
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-IncludeContext

復号化されたコンテンツのみを出力するのではなく、復号化されたコンテンツを元のコンテキストに含めるかどうかを決定します。

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-LiteralPath

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

ByLiteralPath
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Path

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

ByPath
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-To

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

  • 実際の証明書 (証明書プロバイダーから取得)。
  • 証明書を含むファイルへのパス。
  • 証明書を含むディレクトリへのパス。
  • 証明書の拇印 (証明書ストアの検索に使用されます)。
  • 証明書のサブジェクト名 (証明書ストアの検索に使用されます)。

パラメーターのプロパティ

型:

CmsMessageRecipient[]

規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:1
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

EventLogRecord

String

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

出力

String

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