Поделиться через


Get-CmsMessage

Возвращает содержимое, зашифрованное с помощью формата синтаксиса криптографического сообщения.

Синтаксис

Get-CmsMessage
   [-Content] <String>
   [<CommonParameters>]
Get-CmsMessage
   [-Path] <String>
   [<CommonParameters>]
Get-CmsMessage
   [-LiteralPath] <String>
   [<CommonParameters>]

Описание

Командлет Get-CmsMessage получает содержимое, зашифрованное с помощью формата синтаксиса криптографических сообщений (CMS).

Командлеты CMS поддерживают шифрование и расшифровку содержимого с помощью формата IETF для шифрования сообщений, как описано RFC5652.

Стандарт шифрования CMS использует криптографию открытого ключа, где ключи, используемые для шифрования содержимого (открытый ключ), и ключи, используемые для расшифровки содержимого (закрытый ключ), разделены. Открытый ключ можно свободно распространять, так как он не относится к конфиденциальным сведениям. Если какое-либо содержимое зашифровано с помощью данного открытого ключа, расшифровать его позволяет только имеющийся у вас закрытый ключ. Дополнительные сведения см. на странице о шифровании с открытым ключом.

Get-CmsMessage получает содержимое, зашифрованное в формате CMS. Он не расшифровывает или не защищает содержимое. Этот командлет можно запустить, чтобы получить содержимое, зашифрованное с помощью командлета Protect-CmsMessage . Можно указать содержимое, которое требуется расшифровать как строку, или путем к зашифрованном содержимому. Вы можете передать результаты Get-CmsMessage Unprotect-CmsMessage для расшифровки содержимого, если у вас есть сведения о сертификате шифрования документов, который использовался для шифрования содержимого.

Добавлена поддержка Linux и macOS в PowerShell 7.1.

Примеры

Пример 1. Получение зашифрованного содержимого

$Msg = Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
$Msg.Content

-----BEGIN CMS-----
MIIBqAYJKoZIhvcNAQcDoIIBmTCCAZUCAQAxggFQMIIBTAIBADA0MCAxHjAcBgNVBAMBFWxlZWhv
bG1AbGljcm9zb2Z0LmNvbQIQQYHsbcXnjIJCtH+OhGmc1DANBgkqhkiG9w0BAQcwAASCAQAnkFHM
proJnFy4geFGfyNmxH3yeoPvwEYzdnsoVqqDPAd8D3wao77z7OhJEXwz9GeFLnxD6djKV/tF4PxR
E27aduKSLbnxfpf/sepZ4fUkuGibnwWFrxGE3B1G26MCenHWjYQiqv+Nq32Gc97qEAERrhLv6S4R
G+2dJEnesW8A+z9QPo+DwYP5FzD0Td0ExrkswVckpLNR6j17Yaags3ltNXmbdEXekhi6Psf2MLMP
TSO79lv2L0KeXFGuPOrdzPRwCkV0vNEqTEBeDnZGrjv/5766bM3GW34FXApod9u+VSFpBnqVOCBA
DVDraA6k+xwBt66cV84AHLkh0kT02SIHMDwGCSqGSIb3DQEHATAdBglghkgBZQMEASoEEJbJaiRl
KMnBoD1dkb/FzSWAEBaL8xkFwCu0e1AtDj7nSJc=
-----END CMS-----

Эта команда получает зашифрованное содержимое, расположенное в папке C:\Users\Test\Documents\PowerShell\Future_Plans.txt.

Пример 2. Передача зашифрованного содержимого в Unprotect-CmsMessage

$Msg = Get-CmsMessage -Path "C:\Users\Test\Documents\PowerShell\Future_Plans.txt"
$Msg | Unprotect-CmsMessage -To "cn=youralias@emailaddress.com"

Try the new Break All command

Эта команда передает результаты командлета Get-CmsMessage из примера 1 Unprotect-CmsMessageв , чтобы расшифровать сообщение и прочитать его в виде обычного текста. В этом случае значение параметра To — это значение строки темы сертификата шифрования. Расшифрованное сообщение "Попробуйте новую команду Break All", является результатом.

Параметры

-Content

Указывает зашифрованную строку или переменную, содержащую зашифрованную строку.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-LiteralPath

Указывает путь к зашифрованным содержимому, который требуется получить. В отличие от Path, значение LiteralPath используется точно так же, как он типизированный. Никакие символы не распознаются как подстановочные знаки. Если путь содержит escape-символы, заключите каждый из них в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать заключенные символы как escape-символы.

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

Указывает путь к зашифрованным содержимому, который требуется расшифровать.

Тип:String
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False