Unprotect-CmsMessage

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

Syntax

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 Unprotect-CmsMessage cmdlet 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 el descifrado del 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 cualquier contenido está cifrado con esta clave pública, solo su clave privada puede descifrarlo. Para obtener más información, consulte Public-key cryptography (Criptografía mediante claves públicas).

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 Protect-CmsMessage cmdlet . 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 Unprotect-CmsMessage cmdlet 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 C:\Users\Test\Documents\PowerShellliteral . Para el valor del parámetro To necesario, 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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-EventLogRecord

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

Type:PSObject
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IncludeContext

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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).
Type:CmsMessageRecipient[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

EventLogRecord

String

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

Salidas

String

Este cmdlet devuelve el mensaje sin cifrar.