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 cmdlet Unprotect-CmsMessage
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. Se un contenuto è crittografato con questa chiave pubblica, solo la chiave privata può decrittografarla. 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 cmdlet Protect-CmsMessage
. È 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 cmdlet Unprotect-CmsMessage
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 letterale C:\Users\Test\Documents\PowerShell
. Per il valore del parametro necessario To, 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.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-EventLogRecord
Specifica un record del registro eventi che contiene un messaggio crittografato cms.
Tipo: | PSObject |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-IncludeContext
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-LiteralPath
Specifica il percorso del contenuto crittografato da decrittografare. A differenza di Path, il valore di LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come caratteri 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.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso del contenuto crittografato da decrittografare.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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).
Tipo: | CmsMessageRecipient[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un oggetto contenente contenuto crittografato a questo cmdlet.
Output
Questo cmdlet restituisce il messaggio non crittografato.