在具有 PacketIntegrity 身份验证级别的远程计算机上调用 WMI(已激活 KB5004442)

在具有 PacketIntegrity 身份验证级别的远程计算机上调用 WMI(已激活 KB5004442)

我正在尝试使用以下 powershell 代码检索远程计算机上的 WMI 对象:

Get-WmiObject -ComputerName mymachine -class Win32_operatingSystem -Authentication PacketIntegrity

然而,由于 KB5004442(https://support.microsoft.com/en-us/topic/kb5004442-manage-changes-for-windows-dcom-server-security-feature-bypass-cve-2021-26414-f1400b52-c141-43d2-941e-37ed901c769c) 已在我的计算机上安装并激活(RequireIntegrityActivationAuthenticationLevel 注册表项设置为 1),我收到“拒绝访问”错误。

在服务器端的事件查看器中,我可以看到相关错误 10036:The server-side authentication level policy does not allow the user %1\%2 SID (%3) from address %4 to activate DCOM server. Please raise the activation authentication level at least to RPC_C_AUTHN_LEVEL_PKT_INTEGRITY in client application

从我的角度来看,指定“封包完整性“因为身份验证级别应该可以解决问题(我一直尝试使用 PacketPrivacy 级别)

禁用 KB(将 RequireIntegrityActivationAuthenticationLevel 设置为 0 并重新启动)时,该命令可以完美运行。

我一直尝试使用 VBscript 进行此调用,结果相同GetObject("winmgmts:authenticationLevel=packetIntegrity}!\\mymachine\Root\CIMv2")

我的目标是能够在 2023 年 3 月 14 日之后继续请求 WMI 对象,届时将无法禁用 KB5004442。

答案1

实际上,在向微软开具事故单后,似乎没有任何问题。

在我的配置中,客户端没有更新到最新的补丁级别,所以这不起作用。即客户端和服务器都必须部署补丁(至少 KB5006714 或 Windows 8.1 和 Windows Server 2012,请参阅https://support.microsoft.com/en-us/topic/kb5004442-manage-changes-for-windows-dcom-server-security-feature-bypass-cve-2021-26414-f1400b52-c141-43d2-941e-37ed901c769c

这样不清楚Microsoft KB 中解释道,应用补丁 kb5004442 后,无需执行任何操作即可使 DCOM 继续工作,只需升级系统即可!

答案2

即使禁用它,有些东西似乎也会有问题,例如,我们在安装 RDS 集群的脚本中遇到了问题。我们让它工作的唯一方法是在部署的所有机器上将安全性设置为“数据包完整性”。

相关内容