Unprotect-CmsMessage
Odszyfrowuje zawartość, która została zaszyfrowana przy użyciu formatu składni komunikatów kryptograficznych.
Składnia
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>]
Opis
Polecenie Unprotect-CmsMessage
cmdlet odszyfrowuje zawartość zaszyfrowaną przy użyciu formatu składni komunikatów kryptograficznych (CMS).
Polecenia cmdlet cmS obsługują szyfrowanie i odszyfrowywanie zawartości przy użyciu standardowego formatu IETF do kryptograficznego ochrony komunikatów, zgodnie z opisem RFC5652.
Standard szyfrowania CMS używa kryptografii klucza publicznego, gdzie klucze używane do szyfrowania zawartości (klucza publicznego) i kluczy używanych do odszyfrowywania zawartości (klucza prywatnego) są oddzielne. Klucz publiczny można szeroko udostępniać i nie jest poufnymi danymi. Jeśli jakakolwiek zawartość jest zaszyfrowana przy użyciu tego klucza publicznego, tylko twój klucz prywatny może go odszyfrować. Aby uzyskać więcej informacji, zobacz Kryptografia klucza publicznego.
Unprotect-CmsMessage
odszyfrowuje zawartość zaszyfrowaną w formacie CMS. To polecenie cmdlet można uruchomić, aby odszyfrować zaszyfrowaną zawartość, uruchamiając Protect-CmsMessage
polecenie cmdlet . Możesz określić zawartość, którą chcesz odszyfrować jako ciąg, według numeru identyfikatora rekordu dziennika zdarzeń szyfrowania lub ścieżki do zaszyfrowanej zawartości. Polecenie Unprotect-CmsMessage
cmdlet zwraca odszyfrowaną zawartość.
Dodano obsługę systemów Linux i macOS w programie PowerShell 7.1.
Przykłady
Przykład 1. Odszyfrowywanie wiadomości
W poniższym przykładzie odszyfrujesz zawartość znajdującą się w ścieżce C:\Users\Test\Documents\PowerShell
literału . Dla wartości wymaganego parametru To w tym przykładzie użyto odcisku palca certyfikatu, który został użyty do wykonania szyfrowania. Odszyfrowany komunikat "Wypróbuj nowe polecenie Break All" jest wynikiem.
$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
Przykład 2. Odszyfrowywanie zaszyfrowanego komunikatu dziennika zdarzeń
Poniższy przykład pobiera zaszyfrowane zdarzenie z dziennika zdarzeń programu PowerShell i odszyfrowuje je przy użyciu polecenia Unprotect-CmsMessage
.
$event = Get-WinEvent Microsoft-Windows-PowerShell/Operational -MaxEvents 1 |
Where-Object Id -eq 4104
Unprotect-CmsMessage -EventLogRecord $event
Przykład 3. Odszyfrowywanie zaszyfrowanych komunikatów dziennika zdarzeń przy użyciu potoku
Poniższy przykład pobiera wszystkie zaszyfrowane zdarzenia z dziennika zdarzeń programu PowerShell i odszyfrowuje je przy użyciu polecenia Unprotect-CmsMessage
.
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -eq 4104 |
Unprotect-CmsMessage
Parametry
-Content
Określa zaszyfrowany ciąg lub zmienną zawierającą zaszyfrowany ciąg.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-EventLogRecord
Określa rekord dziennika zdarzeń, który zawiera zaszyfrowany komunikat CMS.
Typ: | PSObject |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-IncludeContext
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-LiteralPath
Określa ścieżkę do zaszyfrowanej zawartości, którą chcesz odszyfrować. W przeciwieństwie do ścieżki, wartość literałuPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę do zaszyfrowanej zawartości, którą chcesz odszyfrować.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-To
Określa co najmniej jednego adresata komunikatu CMS zidentyfikowanego w dowolnym z następujących formatów:
- Rzeczywisty certyfikat (pobrany z dostawcy certyfikatów).
- Ścieżka do pliku zawierającego certyfikat.
- Ścieżka do katalogu zawierającego certyfikat.
- Odcisk palca certyfikatu (używany do wyszukiwania w magazynie certyfikatów).
- Nazwa podmiotu certyfikatu (używana do wyszukiwania w magazynie certyfikatów).
Typ: | CmsMessageRecipient[] |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Do tego polecenia cmdlet można przekazać potok obiektu zawierającego zaszyfrowaną zawartość.
Dane wyjściowe
To polecenie cmdlet zwraca niezaszyfrowany komunikat.