当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 取消保护-CmsMessage (Microsoft.PowerShell.Security)

作者:精品下载站 日期:2024-12-14 02:08:58 浏览:12 分类:玩电脑

取消保护-CmsMessage (Microsoft.PowerShell.Security)


Unprotect-CmsMessage

模块 :Microsoft.PowerShell.Security

解密已使用加密消息语法格式加密的内容。

句法

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 cmdlet 可解密已使用加密消息语法 (CMS) 格式加密的内容。

CMS cmdlet 支持使用 IETF 标准格式对内容进行加密和解密,以对消息进行加密保护,如 RFC5652 中所述。

CMS 加密标准使用公钥加密,其中用于加密内容的密钥(公钥)和用于解密内容的密钥(私钥)是分开的。您的公钥可以广泛共享,并且不是敏感数据。如果任何内容使用此公钥加密,则只有您的私钥可以解密它。有关详细信息,请参阅公钥加密。

Unprotect-CmsMessage 解密以 CMS 格式加密的内容。您可以运行此 cmdlet 来解密通过运行 Protect-CmsMessage cmdlet 加密的内容。您可以通过加密事件日志记录 ID 号或加密内容的路径将要解密的内容指定为字符串。 Unprotect-CmsMessage cmdlet 返回解密的内容。

PowerShell 7.1 中添加了对 Linux 和 macOS 的支持。

示例

示例 1:解密消息

在以下示例中,您将解密位于文字路径 C:\Users\Test\Documents\PowerShell 的内容。对于所需的 To 参数的值,本示例使用用于执行加密的证书的指纹。解密的消息“尝试新的全部中断命令”就是结果。

$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

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-EventLogRecord

指定包含 CMS 加密消息的事件日志记录。

类型 :

PS对象

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-IncludeContext

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-LiteralPath

指定要解密的加密内容的路径。与 Path 不同,LiteralPath 的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。

类型 :

String

位置:

0

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Path

指定要解密的加密内容的路径。

类型 :

String

位置:

0

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-To

指定一个或多个 CMS 消息收件人,以以下任一格式标识:

  • 实际证书(从证书提供商处检索)。
  • 包含证书的文件的路径。
  • 包含证书的目录的路径。
  • 证书的指纹(用于在证书存储中查找)。
  • 证书的使用者名称(用于在证书存储中查找)。
类型 :

Cms消息接收者[]

位置:

1

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

事件日志记录

字符串

您可以通过管道将包含加密内容的对象传递给此 cmdlet。

输出

字符串

此 cmdlet 返回未加密的消息。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯