Compartir a través de


Unprotect-CmsMessage

Descifra el contenido cifrado mediante el formato de sintaxis de mensajes criptográficos.

Sintaxis

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

El cmdlet Unprotect-CmsMessage descifra el contenido que se ha cifrado mediante el formato de sintaxis de mensajes criptográficos (CMS).

Los cmdlets de CMS admiten el cifrado y descifrado de contenido mediante el formato estándar IETF para proteger los mensajes criptográficamente, tal como se documenta en RFC5652.

El estándar de cifrado cmS usa criptografía de clave pública, donde las claves usadas para cifrar el contenido (la clave pública) y las claves usadas para descifrar contenido (la clave privada) son independientes. La clave pública se puede compartir ampliamente y no es información confidencial. Si algún contenido se cifra con esta clave pública, solo la clave privada puede descifrarlo. Para obtener más información, vea criptografía de clave pública.

Unprotect-CmsMessage descifra el contenido cifrado en formato CMS. Puede ejecutar este cmdlet para descifrar el contenido que ha cifrado mediante la ejecución del cmdlet Protect-CmsMessage. Puede especificar el contenido que desea descifrar como una cadena, mediante el número de identificador de registro de eventos de cifrado o por ruta de acceso al contenido cifrado. El cmdlet Unprotect-CmsMessage devuelve el contenido descifrado.

Se ha agregado compatibilidad con Linux y macOS en PowerShell 7.1.

Ejemplos

Ejemplo 1: Descifrar un mensaje

En el ejemplo siguiente, descifrará el contenido que se encuentra en la ruta de acceso literal C:\Users\Test\Documents\PowerShell. Para el valor del parámetro necesario Para, en este ejemplo se usa la huella digital del certificado que se usó para realizar el cifrado. El mensaje descifrado " Try the new Break All command" (Probar el nuevo comando Interrumpir todo) es el 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

Ejemplo 2: Descifrar un mensaje de registro de eventos cifrado

En el ejemplo siguiente se obtiene un evento cifrado del registro de eventos de PowerShell y se descifra mediante Unprotect-CmsMessage.

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

Ejemplo 3: Descifrar mensajes de registro de eventos cifrados mediante la canalización

En el ejemplo siguiente se obtienen todos los eventos cifrados del registro de eventos de PowerShell y los descifra mediante Unprotect-CmsMessage.

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

Parámetros

-Content

Especifica una cadena cifrada o una variable que contiene una cadena cifrada.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-EventLogRecord

Especifica un registro de registro de eventos que contiene un mensaje cifrado cmS.

Tipo:PSObject
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-IncludeContext

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-LiteralPath

Especifica la ruta de acceso al contenido cifrado que desea descifrar. A diferencia de Ruta de acceso, el valor de LiteralPath se usa exactamente como se escribe. No se interpreta ningún carácter comodín. Si la ruta de acceso incluye caracteres de escape, escríbala entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Path

Especifica la ruta de acceso al contenido cifrado que desea descifrar.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-To

Especifica uno o varios destinatarios del mensaje CMS, identificados en cualquiera de los siguientes formatos:

  • Un certificado real (como se recuperó del proveedor de certificados).
  • Ruta de acceso al archivo que contiene el certificado.
  • Ruta de acceso a un directorio que contiene el certificado.
  • Huella digital del certificado (que se usa para buscar en el almacén de certificados).
  • Nombre del firmante del certificado (que se usa para buscar en el almacén de certificados).
Tipo:CmsMessageRecipient[]
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

EventLogRecord

String

Puede canalizar un objeto que contiene contenido cifrado a este cmdlet.

Salidas

String

Este cmdlet devuelve el mensaje sin cifrar.