远程 WMI 连接故障排除

以下各部分介绍了开发人员在创建远程 WMI 连接时可能遇到的常见问题。

本主题包括以下部分:

DCOM 访问被拒绝

症状

连接失败,出现错误“DCOM 访问被拒绝”,以及十进制值 -2147024891 或十六进制值 0x80070005。

问题

DCOM 可能未配置为允许 WMI 连接。

解决方法

可以使用“控制面板”上“管理工具”中的 DCOM 配置实用工具 (DCOMCnfg.exe) 来配置 WMI 的 DCOM 设置。 此实用工具公开了使某些用户能够通过 DCOM 远程连接到计算机的设置。 默认允许管理员组的成员远程连接到计算机。 使用此实用工具可以设置启动、访问和配置 WMI 服务时的安全性。

有关详细信息,请参阅保护远程 WMI 连接

连接失败

症状

无法连接到远程系统上的 WMI。

问题

你可能正在尝试连接到不支持 WMI 的系统。 不支持操作系统版本之间的以下连接:

  • 无法连接到运行入门版、基本版或家庭版的计算机。

或者,你可能在尝试连接到需要加密连接的命名空间、需要 pktPrivacy、WbemAuthenticationLevelPktPrivacy 或 RPC_C_AUTHN_LEVEL_PKT_PRIVACY 身份验证级别的命名空间。

解决方法

有关详细信息,请参阅保护 WMI 命名空间保护 C++ 客户端和提供程序使用 VBScript 设置默认进程安全级别

WMI 连接超时

症状

你的 WMI 连接超时。

问题

由于网络延迟问题,计算机根本无法及时响应。

解决方法

通过调用 SWbemLocator.ConnectServerIWbemLocator::ConnectServer 连接到 WMI 时,你可以将 wbemConnectFlagUseMaxWait 标志(脚本中)或 WBEM_FLAG_CONNECT_USE_MAX_WAIT(C++ 中)值设置为 128 (0x80),以对调用施加两 (2) 分钟的超时。

连接到远程计算机上的 WMI