Condividi tramite


Unprotect-CmsMessage

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

Sintassi

ByWinEvent (Impostazione predefinita)

Unprotect-CmsMessage
    [-EventLogRecord] <EventLogRecord>
    [[-To] <CmsMessageRecipient[]>]
    [-IncludeContext]
    [<CommonParameters>]

ByContent

Unprotect-CmsMessage
    [-Content] <string>
    [[-To] <CmsMessageRecipient[]>]
    [-IncludeContext]
    [<CommonParameters>]

ByPath

Unprotect-CmsMessage
    [-Path] <string>
    [[-To] <CmsMessageRecipient[]>]
    [-IncludeContext]
    [<CommonParameters>]

ByLiteralPath

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 esatto C:\Users\Test\Documents\PowerShell. Per il valore del parametro richiesto a, in questo esempio viene utilizzata l'impronta digitale 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.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByContent
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-EventLogRecord

Specifica un record del registro eventi che contiene un messaggio crittografato CMS.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByWinEvent
Posizione:0
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-IncludeContext

Determina se includere il contenuto decrittografato nel contesto originale, anziché restituire solo il contenuto decrittografato.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 è interpretato come un carattere jolly. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByLiteralPath
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Path

Specifica il percorso del contenuto crittografato da decrittografare.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByPath
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 del file contenente il certificato.
  • Percorso di una directory contenente il certificato.
  • Impronta digitale del certificato (usata per cercare nell'archivio dei certificati).
  • Nome del soggetto del certificato (usato per cercare nell'archivio dei certificati).

Proprietà dei parametri

Tipo:

CmsMessageRecipient[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

EventLogRecord

String

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

Output

String

Questo cmdlet restituisce il messaggio non crittografato.