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 CMS (Cryptographic Message Syntax).

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 a 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 desidera decrittografare come stringa, in base al numero ID del record del registro eventi di crittografia o 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 "Prova il nuovo comando Interrompi tutto" è 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

L'esempio seguente ottiene un evento crittografato dal registro eventi di PowerShell e lo 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 registro 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 registro eventi che contiene un messaggio crittografato 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 viene tipizzato. 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 alcun carattere 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 del messaggio CMS, identificati in uno dei formati seguenti:

  • Un 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 (usata 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 tramite pipe un oggetto contenente contenuto crittografato a questo cmdlet.

Output

String

Questo cmdlet restituisce il messaggio non crittografato.