Partager via


Unprotect-CmsMessage

Déchiffre le contenu qui a été chiffré à l’aide du format syntaxe des messages de chiffrement.

Syntaxe

ByWinEvent (Par défaut)

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

Description

L’applet de commande Unprotect-CmsMessage déchiffre le contenu qui a été chiffré à l’aide du format CMS (Cryptographic Message Syntax).

Les applets de commande CMS prennent en charge le chiffrement et le déchiffrement du contenu à l’aide du format standard IETF pour protéger les messages par chiffrement, comme documenté par RFC5652.

La norme de chiffrement CMS utilise le chiffrement à clé publique, où les clés utilisées pour chiffrer le contenu (la clé publique) et les clés utilisées pour déchiffrer le contenu (la clé privée) sont distinctes. Votre clé publique peut être partagée largement et n’est pas des données sensibles. Si un contenu est chiffré avec cette clé publique, seule votre clé privée peut la déchiffrer. Pour plus d’informations, consultez chiffrement à clé publique.

Unprotect-CmsMessage déchiffre le contenu qui a été chiffré au format CMS. Vous pouvez exécuter cette applet de commande pour déchiffrer le contenu chiffré en exécutant l’applet de commande Protect-CmsMessage. Vous pouvez spécifier le contenu que vous souhaitez déchiffrer en tant que chaîne, par le numéro d’ID d’enregistrement du journal des événements de chiffrement ou par chemin d’accès au contenu chiffré. L’applet de commande Unprotect-CmsMessage retourne le contenu déchiffré.

La prise en charge de Linux et macOS a été ajoutée dans PowerShell 7.1.

Exemples

Exemple 1 : Déchiffrer un message

Dans l’exemple suivant, vous déchiffrez le contenu situé au niveau du chemin littéral C:\Users\Test\Documents\PowerShell. Pour la valeur de l'obligatoire À paramètre, cet exemple utilise l’empreinte numérique du certificat utilisé pour effectuer le chiffrement. Le message déchiffré , « Essayer la nouvelle commande Arrêter tout », est le résultat.

$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

Exemple 2 : Déchiffrer un message de journal des événements chiffré

L’exemple suivant obtient un événement chiffré à partir du journal des événements PowerShell et le déchiffre à l’aide de Unprotect-CmsMessage.

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

Exemple 3 : Déchiffrer les messages du journal des événements chiffrés à l’aide du pipeline

L’exemple suivant obtient tous les événements chiffrés du journal des événements PowerShell et les déchiffre à l’aide de Unprotect-CmsMessage.

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

Paramètres

-Content

Spécifie une chaîne chiffrée ou une variable contenant une chaîne chiffrée.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByContent
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-EventLogRecord

Spécifie un enregistrement du journal des événements qui contient un message chiffré CMS.

Propriétés du paramètre

Type:PSObject
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByWinEvent
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-IncludeContext

L’applet de commande Unprotect-CmsMessage déchiffre le contenu qui a été chiffré à l’aide du format CMS (Cryptographic Message Syntax).

Les applets de commande CMS prennent en charge le chiffrement et le déchiffrement du contenu à l’aide du format standard IETF pour protéger les messages par chiffrement, comme documenté par RFC5652.

La norme de chiffrement CMS utilise le chiffrement à clé publique, où les clés utilisées pour chiffrer le contenu (la clé publique) et les clés utilisées pour déchiffrer le contenu (la clé privée) sont distinctes. Votre clé publique peut être partagée largement et n’est pas des données sensibles. Si un contenu est chiffré avec cette clé publique, seule votre clé privée peut la déchiffrer. Pour plus d’informations, consultez chiffrement à clé publique.

Unprotect-CmsMessage déchiffre le contenu qui a été chiffré au format CMS. Vous pouvez exécuter cette applet de commande pour déchiffrer le contenu chiffré en exécutant l’applet de commande Protect-CmsMessage. Vous pouvez spécifier le contenu que vous souhaitez déchiffrer en tant que chaîne, par le numéro d’ID d’enregistrement du journal des événements de chiffrement ou par chemin d’accès au contenu chiffré. L’applet de commande Unprotect-CmsMessage retourne le contenu déchiffré.

La prise en charge de Linux et macOS a été ajoutée dans PowerShell 7.1.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-LiteralPath

Spécifie le chemin d’accès au contenu chiffré que vous souhaitez déchiffrer. Contrairement à Path, la valeur de LiteralPath est utilisée exactement comme il est typé. Aucun caractère n'est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByLiteralPath
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Path

Spécifie le chemin d’accès au contenu chiffré que vous souhaitez déchiffrer.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByPath
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-To

Spécifie un ou plusieurs destinataires de message CMS, identifiés dans l’un des formats suivants :

  • Certificat réel (tel que récupéré à partir du fournisseur de certificats).
  • Chemin d’accès au fichier contenant le certificat.
  • Chemin d’accès à un répertoire contenant le certificat.
  • Empreinte numérique du certificat (utilisée pour rechercher dans le magasin de certificats).
  • Nom du sujet du certificat (utilisé pour rechercher dans le magasin de certificats).

Propriétés du paramètre

Type:

CmsMessageRecipient[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:1
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

EventLogRecord

String

Vous pouvez diriger un objet contenant du contenu chiffré vers cette applet de commande.

Sorties

String

Cette applet de commande retourne le message non chiffré.