Unprotect-CmsMessage
Расшифровывает содержимое, зашифрованное с помощью формата синтаксиса криптографического сообщения.
Синтаксис
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>]
Описание
Командлет Unprotect-CmsMessage
расшифровывает содержимое, зашифрованное с помощью формата синтаксиса криптографических сообщений (CMS).
Командлеты CMS поддерживают шифрование и расшифровку содержимого с помощью стандартного формата IETF для шифрования сообщений, как описано RFC5652.
Стандарт шифрования CMS использует криптографию открытого ключа, где ключи, используемые для шифрования содержимого (открытый ключ), и ключи, используемые для расшифровки содержимого (закрытый ключ), разделены. Открытый ключ можно совместно использовать и не учитывает конфиденциальные данные. Если какое-либо содержимое зашифровано с помощью данного открытого ключа, расшифровать его позволяет только имеющийся у вас закрытый ключ. Дополнительные сведения см. на странице о шифровании с открытым ключом.
Unprotect-CmsMessage
расшифровывает содержимое, зашифрованное в формате CMS. Этот командлет можно запустить для расшифровки содержимого, зашифрованного с помощью командлета Protect-CmsMessage
. Можно указать содержимое, которое требуется расшифровать как строку, по идентификатору записи журнала шифрования или по пути к зашифрованном содержимому. Командлет Unprotect-CmsMessage
возвращает расшифрованное содержимое.
Добавлена поддержка Linux и macOS в PowerShell 7.1.
Примеры
Пример 1. Расшифровка сообщения
В следующем примере вы расшифровываете содержимое, расположенное по литералу пути C:\Users\Test\Documents\PowerShell
. Для значения требуемого параметра To в этом примере используется отпечаток сертификата, который использовался для выполнения шифрования. Расшифрованное сообщение "Попробуйте новую команду Break All", является результатом.
$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
Пример 2. Расшифровка зашифрованного сообщения журнала событий
Следующий пример получает зашифрованное событие из журнала событий PowerShell и расшифровывает его с помощью Unprotect-CmsMessage
.
$event = Get-WinEvent Microsoft-Windows-PowerShell/Operational -MaxEvents 1 |
Where-Object Id -eq 4104
Unprotect-CmsMessage -EventLogRecord $event
Пример 3. Расшифровка зашифрованных сообщений журнала событий с помощью конвейера
Следующий пример получает все зашифрованные события из журнала событий PowerShell и расшифровывает их с помощью Unprotect-CmsMessage
.
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -eq 4104 |
Unprotect-CmsMessage
Параметры
-Content
Указывает зашифрованную строку или переменную, содержащую зашифрованную строку.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-EventLogRecord
Указывает запись журнала событий, содержащую зашифрованное сообщение CMS.
Тип: | PSObject |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-IncludeContext
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-LiteralPath
Указывает путь к зашифрованным содержимому, который требуется расшифровать. В отличие от Path, значение LiteralPath используется точно так же, как он типизированный. Никакие символы не распознаются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к зашифрованным содержимому, который требуется расшифровать.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-To
Указывает одного или нескольких получателей сообщений CMS, определенных в любом из следующих форматов:
- Фактический сертификат (полученный от поставщика сертификатов).
- Путь к файлу, содержаму сертификату.
- Путь к каталогу, содержаму сертификат.
- Отпечаток сертификата (используется для поиска в хранилище сертификатов).
- Имя субъекта сертификата (используется для поиска в хранилище сертификатов).
Тип: | CmsMessageRecipient[] |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Объект, содержащий зашифрованное содержимое, можно передать этому командлету.
Выходные данные
Этот командлет возвращает незашифрованное сообщение.
Связанные ссылки
PowerShell