다음을 통해 공유


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>]

Description

Unprotect-CmsMessage cmdlet은 CMS(암호화 메시지 구문) 형식을 사용하여 암호화된 콘텐츠의 암호를 해독합니다.

CMS cmdlet은 RFC5652문서화된 대로 메시지를 암호화하기 위해 IETF 표준 형식을 사용하여 콘텐츠의 암호화 및 암호 해독을 지원합니다.

CMS 암호화 표준은 공개 키 암호화를 사용합니다. 여기서 콘텐츠(공개 키)를 암호화하는 데 사용되는 키와 콘텐츠 암호 해독에 사용되는 키(프라이빗 키)는 별개입니다. 공개 키는 널리 공유할 수 있으며 중요한 데이터가 아닙니다. 이 공개 키로 암호화된 콘텐츠가 있는 경우 프라이빗 키만 암호를 해독할 수 있습니다. 자세한 내용은 공개 키 암호화참조하세요.

Unprotect-CmsMessage CMS 형식으로 암호화된 콘텐츠의 암호를 해독합니다. 이 cmdlet을 실행하여 Protect-CmsMessage cmdlet으로 암호화한 콘텐츠를 해독할 수 있습니다. 문자열, 암호화 이벤트 로그 레코드 ID 번호 또는 암호화된 콘텐츠 경로로 암호 해독하려는 콘텐츠를 지정할 수 있습니다. Unprotect-CmsMessage cmdlet은 해독된 콘텐츠를 반환합니다.

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
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ByContent
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:True
나머지 인수의 값:False

-EventLogRecord

CMS 암호화된 메시지를 포함하는 이벤트 로그 레코드를 지정합니다.

매개 변수 속성

형식:PSObject
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ByWinEvent
Position:0
필수:True
파이프라인의 값:True
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-IncludeContext

암호 해독된 콘텐츠만 출력하는 대신 암호 해독된 콘텐츠를 원래 컨텍스트에 포함할지 여부를 결정합니다.

매개 변수 속성

형식:SwitchParameter
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-LiteralPath

암호 해독하려는 암호화된 콘텐츠의 경로를 지정합니다. 경로와는 달리, LiteralPath 값은 입력된 대로 정확하게 사용됩니다. 와일드카드 문자로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ByLiteralPath
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Path

암호 해독하려는 암호화된 콘텐츠의 경로를 지정합니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

ByPath
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-To

다음 형식 중 하나로 식별되는 하나 이상의 CMS 메시지 받는 사람을 지정합니다.

  • 인증서 공급자에서 검색된 실제 인증서입니다.
  • 인증서를 포함하는 파일의 경로입니다.
  • 인증서를 포함하는 디렉터리의 경로입니다.
  • 인증서의 지문 (인증서 저장소에서 찾는 데 사용됨).
  • 인증서의 주체 이름입니다(인증서 저장소를 찾는 데 사용됨).

매개 변수 속성

형식:

CmsMessageRecipient[]

Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:1
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

EventLogRecord

String

암호화된 콘텐츠가 포함된 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

String

이 cmdlet은 암호화되지 않은 메시지를 반환합니다.