Unprotect-CmsMessage
Расшифровывает содержимое, зашифрованное с помощью формата синтаксиса криптографического сообщения.
Синтаксис
ByWinEvent (по умолчанию)
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>]
Описание
Командлет 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 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByContent
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-EventLogRecord
Указывает запись журнала событий, содержащую зашифрованное сообщение CMS.
Свойства параметра
| Тип: | PSObject |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByWinEvent
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-IncludeContext
Определяет, следует ли включать расшифрованное содержимое в исходный контекст, а не выводить только расшифрованное содержимое.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-LiteralPath
Указывает путь к зашифрованным содержимому, который требуется расшифровать. В отличие отпути
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByLiteralPath
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Path
Указывает путь к зашифрованным содержимому, который требуется расшифровать.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByPath
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-To
Указывает одного или нескольких получателей сообщений CMS, определенных в любом из следующих форматов:
- Фактический сертификат (полученный от поставщика сертификатов).
- Путь к файлу, содержаму сертификату.
- Путь к каталогу, содержаму сертификат.
- Отпечаток сертификата (используется для поиска в хранилище сертификатов).
- Имя субъекта сертификата (используется для поиска в хранилище сертификатов).
Свойства параметра
| Тип: | |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 1 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
EventLogRecord
String
Объект, содержащий зашифрованное содержимое, можно передать этому командлету.
Выходные данные
String
Этот командлет возвращает незашифрованное сообщение.