Get-CmsMessage (Microsoft.PowerShell.Security)
Get-CmsMessage
- Модуль:
- Microsoft.PowerShell.Security
Получает содержимое, зашифрованное с использованием формата синтаксиса криптографического сообщения.
Синтаксис
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 является значением строки темы сертификата шифрования. Результатом является расшифрованное сообщение «Попробуйте новую команду «Разорвать все».
Параметры
-Content
Указывает зашифрованную строку или переменную, содержащую зашифрованную строку.
- Тип :
String
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-LiteralPath
Указывает путь к зашифрованному содержимому, которое вы хотите получить. В отличие от Path, значение LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, заключите каждый из них в одинарные кавычки. Одинарные кавычки сообщают PowerShell не интерпретировать заключенные в них символы как escape-символы.
- Тип :
String
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Path
Указывает путь к зашифрованному содержимому, которое вы хотите расшифровать.
- Тип :
String
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False