Partilhar via


Unprotect-CmsMessage

Descriptografa o conteúdo que foi criptografado usando o formato Sintaxe de Mensagem Criptográfica.

Sintaxe

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

Description

O Unprotect-CmsMessage cmdlet descriptografa o conteúdo que foi criptografado usando o formato CMS (Sintaxe de Mensagem Criptográfica).

Os cmdlets CMS suportam criptografia e descriptografia de conteúdo usando o formato padrão IETF para proteger mensagens criptograficamente, conforme documentado por RFC5652.

O padrão de criptografia CMS usa criptografia de chave pública, onde as chaves usadas para criptografar conteúdo (a chave pública) e as chaves usadas para descriptografar conteúdo (a chave privada) são separadas. Sua chave pública pode ser compartilhada amplamente e não são dados confidenciais. Se algum conteúdo for encriptado com esta chave pública, apenas a sua chave privada pode desencriptar. Para obter mais informações, consulte Criptografia de chave pública.

Unprotect-CmsMessage desencripta o conteúdo que foi encriptado no formato CMS. Você pode executar esse cmdlet para descriptografar o conteúdo criptografado executando o Protect-CmsMessage cmdlet. Você pode especificar o conteúdo que deseja descriptografar como uma cadeia de caracteres, pelo número de ID do registro do log de eventos de criptografia ou pelo caminho para o conteúdo criptografado. O Unprotect-CmsMessage cmdlet retorna o conteúdo descriptografado.

O suporte para Linux e macOS foi adicionado no PowerShell 7.1.

Exemplos

Exemplo 1: Desencriptar uma mensagem

No exemplo a seguir, você descriptografa o conteúdo localizado no caminho C:\Users\Test\Documents\PowerShellliteral. Para o valor do parâmetro To necessário, este exemplo usa a impressão digital do certificado que foi usado para executar a criptografia. A mensagem desencriptada, "Tente o novo comando Quebrar tudo", é o resultado.

$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

Exemplo 2: Desencriptar uma mensagem de registo de eventos encriptada

O exemplo a seguir obtém um evento criptografado do log de eventos do PowerShell e o descriptografa usando Unprotect-CmsMessage.

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

Exemplo 3: Descriptografar mensagens criptografadas do log de eventos usando o pipeline

O exemplo a seguir obtém todos os eventos criptografados do log de eventos do PowerShell e os descriptografa usando Unprotect-CmsMessageo .

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

Parâmetros

-Content

Especifica uma cadeia de caracteres criptografada ou uma variável que contém uma cadeia de caracteres criptografada.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-EventLogRecord

Especifica um registro de log de eventos que contém uma mensagem criptografada CMS.

Tipo:PSObject
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-IncludeContext

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-LiteralPath

Especifica o caminho para o conteúdo criptografado que você deseja descriptografar. Ao contrário de Path, o valor de LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como caracteres curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples dizem ao PowerShell para não interpretar nenhum caractere como sequências de escape.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Path

Especifica o caminho para o conteúdo criptografado que você deseja descriptografar.

Tipo:String
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-To

Especifica um ou mais destinatários de mensagens CMS, identificados em qualquer um dos seguintes formatos:

  • Um certificado real (conforme recuperado do provedor de certificados).
  • Caminho para o arquivo que contém o certificado.
  • Caminho para um diretório que contém o certificado.
  • Impressão digital do certificado (usada para procurar no armazenamento de certificados).
  • Nome do assunto do certificado (usado para procurar no armazenamento de certificados).
Tipo:CmsMessageRecipient[]
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

EventLogRecord

String

Você pode canalizar um objeto contendo conteúdo criptografado para este cmdlet.

Saídas

String

Este cmdlet retorna a mensagem não criptografada.