Condividi tramite


Unprotect-CmsMessage

Decrittografa il contenuto crittografato usando il formato sintassi del messaggio crittografico.

Sintassi

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

Descrizione

Il Unprotect-CmsMessage cmdlet decrittografa il contenuto crittografato usando il formato Sintassi del messaggio crittografico (CMS).

I cmdlet CMS supportano la crittografia e la decrittografia del contenuto usando il formato standard IETF per la protezione crittografica dei messaggi, come documentato da RFC5652.

Lo standard di crittografia CMS usa la crittografia della chiave pubblica, in cui le chiavi usate per crittografare il contenuto (la chiave pubblica) e le chiavi usate per decrittografare il contenuto (la chiave privata) sono separate. La chiave pubblica può essere condivisa ampiamente e non è dati sensibili. Eventuale contenuto crittografato con la chiave pubblica potrà essere decrittografato solo con la chiave privata. Per altre informazioni, vedere: Crittografia a chiave pubblica.

Unprotect-CmsMessage decrittografa il contenuto crittografato in formato CMS. È possibile eseguire questo cmdlet per decrittografare il contenuto crittografato eseguendo il Protect-CmsMessage cmdlet. È possibile specificare il contenuto che si vuole decrittografare come stringa, dal numero ID ID del record del log eventi di crittografia o in base al percorso del contenuto crittografato. Il Unprotect-CmsMessage cmdlet restituisce il contenuto decrittografato.

Il supporto per Linux e macOS è stato aggiunto in PowerShell 7.1.

Esempio

Esempio 1: Decrittografare un messaggio

Nell'esempio seguente si decrittografa il contenuto che si trova nel percorso C:\Users\Test\Documents\PowerShellletterale . Per il valore del parametro To obbligatorio, in questo esempio viene utilizzata l'identificazione personale del certificato usato per eseguire la crittografia. Il messaggio decrittografato "Provare il nuovo comando Break All" è il risultato.

$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

Esempio 2: Decrittografare un messaggio del registro eventi crittografato

Nell'esempio seguente viene ottenuto un evento crittografato dal registro eventi di PowerShell e la decrittografa usando Unprotect-CmsMessage.

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

Esempio 3: Decrittografare i messaggi del log eventi crittografati usando la pipeline

L'esempio seguente ottiene tutti gli eventi crittografati dal registro eventi di PowerShell e li decrittografa usando Unprotect-CmsMessage.

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

Parametri

-Content

Specifica una stringa crittografata o una variabile contenente una stringa crittografata.

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

-EventLogRecord

Specifica un record del log eventi che contiene un messaggio crittografato di 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

Specifica il percorso del contenuto crittografato da decrittografare. A differenza di Path, il valore di LiteralPath viene usato esattamente come digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare i caratteri come sequenze di escape.

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

-Path

Specifica il percorso del contenuto crittografato da decrittografare.

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

-To

Specifica uno o più destinatari dei messaggi CMS, identificati in uno dei formati seguenti:

  • Certificato effettivo (come recuperato dal provider di certificati).
  • Percorso di un file contenente il certificato.
  • Percorso di una directory contenente il certificato.
  • Identificazione personale del certificato (utilizzata per cercare nell'archivio certificati).
  • Nome soggetto del certificato (usato per cercare nell'archivio certificati).
Type:CmsMessageRecipient[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

EventLogRecord

String

È possibile inviare un oggetto contenente contenuto crittografato a questo cmdlet.

Output

String

Questo cmdlet restituisce il messaggio non crittografato.