需要与命名空间建立加密连接

您可以通过将 RequiresEncryption 限定符添加到创建命名空间的托管对象格式 (mof) mof 文件,要求客户端脚本和应用程序建立用于身份验证的加密连接。

到 WMI 命名空间的加密连接在脚本) 中指定 RPC _ C _ 身份验证 _ LEVEL _ PKT _ 隐私 (或 PktPrivacy 进行身份验证。 RequiresEncryption 限定符会使 WMI 拒绝任何传入的数据请求,除非它们显式使用加密的身份验证。 有关详细信息,请参阅 使用 VBScript 设置默认进程安全级别使用 c + + 设置身份验证

还可以通过添加此属性来修改现有命名空间,然后再次编译 MOF 文件。 RequiresEncryption 用于具有 杂注命名空间预处理器指令的 MOF

下面的过程将命名空间设置为需要加密连接。

设置所需的加密

  1. 创建托管对象格式 (MOF) 文件或修改定义命名空间的现有 MOF 文件。

    下面的代码示例演示将修改的命名空间为 根 \ MyNamespace ,并将该文件命名为 MyNamespace _RequiresEncryption 具有布尔数据类型,因此必须将其设置为 TrueFalse

    #pragma namespace("\\\\.\\Root\\MyNamespace") 
    
    [RequiresEncryption(TRUE)] 
    instance of __systemSecurity { };
    
  2. 运行 mofcomp.exe 以编译 MOF 文件。

    c: \ Mofcomp.exe MyNamespace _

    在 c + + 中,使用 IMoFCompiler 方法。

WMI 拒绝使用默认身份验证级别的客户端,因为 DCOM 会将安全性协调为运行 WMI 服务的 SVCHOST 进程所需的级别。 有关服务主机的详细信息,请参阅 提供程序托管和安全性。 有关连接到 WMI 命名空间时设置身份验证级别的详细信息,请参阅 使用 c + + 设置默认进程安全级别使用 c + + 设置身份验证使用 VBScript 设置默认进程安全级别

在异步回调连接上返回数据时,WMI 会向请求计算机返回 "拒绝访问" 消息。 WMI 还会在具有加密命名空间的计算机的 NT 事件日志中生成日志条目,指出无法建立与客户端的安全连接。

从 Windows Vista 开始,WbemCore 文件不再存在。 您可以查看 NT 事件日志中是否有指示拒绝了对需要加密的命名空间的入站数据请求的条目。

设置命名空间安全描述符

WbemAuthenticationLevelEnum

保护远程 WMI 连接