Unprotect-CmsMessage
Entschlüsselt Inhalte, die mit dem Format kryptografische Nachrichtensyntax verschlüsselt wurden.
Syntax
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>]
Beschreibung
Das Unprotect-CmsMessage
Cmdlet entschlüsselt Inhalte, die mit dem CMS-Format (Cryptographic Message Syntax) verschlüsselt wurden.
Die CMS-Cmdlets unterstützen die Ver- und Entschlüsselung von Inhalten mithilfe des IETF-Standardformats zum kryptografischen Schutz von Nachrichten, wie von RFC5652 dokumentiert.
Der CMS-Verschlüsselungsstandard verwendet Kryptografie mit öffentlichen Schlüsseln, bei der die Zum Verschlüsseln von Inhalten verwendeten Schlüssel (der öffentliche Schlüssel) und die Zum Entschlüsseln von Inhalten verwendeten Schlüssel (der private Schlüssel) getrennt sind. Ihr öffentlicher Schlüssel kann weit verbreitet werden und ist keine vertraulichen Daten. Wenn Inhalte mit diesem öffentlichen Schlüssel verschlüsselt sind, können sie nur mit Ihrem privaten Schlüssel entschlüsselt werden. Weitere Informationen finden Sie unter Public-Key-Verschlüsselungsverfahren.
Unprotect-CmsMessage
entschlüsselt Inhalte, die im CMS-Format verschlüsselt wurden. Sie können dieses Cmdlet ausführen, um verschlüsselte Inhalte zu entschlüsseln, indem Sie das Protect-CmsMessage
Cmdlet ausführen. Sie können Inhalte, die Sie entschlüsseln möchten, als Zeichenfolge, anhand der ID-Nummer des Verschlüsselungsereignisprotokolldatensatzes oder als Pfad zum verschlüsselten Inhalt angeben. Das Unprotect-CmsMessage
Cmdlet gibt den entschlüsselten Inhalt zurück.
Unterstützung für Linux und macOS wurde in PowerShell 7.1 hinzugefügt.
Beispiele
Beispiel 1: Entschlüsseln einer Nachricht
Im folgenden Beispiel entschlüsseln Sie Inhalte, die sich im Literalpfad C:\Users\Test\Documents\PowerShell
befinden. Für den Wert des erforderlichen To-Parameters verwendet dieses Beispiel den Fingerabdruck des Zertifikats, das zum Ausführen der Verschlüsselung verwendet wurde. Die entschlüsselte Meldung "Try the new Break All command" ist das Ergebnis.
$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
Beispiel 2: Entschlüsseln einer verschlüsselten Ereignisprotokollnachricht
Im folgenden Beispiel wird ein verschlüsseltes Ereignis aus dem PowerShell-Ereignisprotokoll abgerufen und mit Unprotect-CmsMessage
entschlüsselt.
$event = Get-WinEvent Microsoft-Windows-PowerShell/Operational -MaxEvents 1 |
Where-Object Id -eq 4104
Unprotect-CmsMessage -EventLogRecord $event
Beispiel 3: Entschlüsseln verschlüsselter Ereignisprotokollmeldungen mithilfe der Pipeline
Im folgenden Beispiel werden alle verschlüsselten Ereignisse aus dem PowerShell-Ereignisprotokoll abgerufen und mit Unprotect-CmsMessage
entschlüsselt.
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -eq 4104 |
Unprotect-CmsMessage
Parameter
-Content
Gibt eine verschlüsselte Zeichenfolge oder eine Variable an, die eine verschlüsselte Zeichenfolge enthält.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EventLogRecord
Gibt einen Ereignisprotokolldatensatz an, der eine CMS-verschlüsselte Nachricht enthält.
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
Gibt den Pfad zu verschlüsseltem Inhalt an, den Sie entschlüsseln möchten. Im Gegensatz zu Path wird der Wert von LiteralPath genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Gibt den Pfad zu verschlüsseltem Inhalt an, den Sie entschlüsseln möchten.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-To
Gibt einen oder mehrere CMS-Nachrichtenempfänger an, die in einem der folgenden Formate identifiziert werden:
- Ein tatsächliches Zertifikat (wie vom Zertifikatanbieter abgerufen).
- Pfad zu der Datei, die das Zertifikat enthält.
- Pfad zu einem Verzeichnis, das das Zertifikat enthält.
- Fingerabdruck des Zertifikats (wird verwendet, um im Zertifikatspeicher zu suchen).
- Antragstellername des Zertifikats (wird verwendet, um im Zertifikatspeicher nachzuschlagen).
Type: | CmsMessageRecipient[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können ein Objekt, das verschlüsselten Inhalt enthält, an dieses Cmdlet übergeben.
Ausgaben
Dieses Cmdlet gibt die unverschlüsselte Nachricht zurück.