导读:本期聚焦于赵六创作的《如何在 Windows Server 上使用 WMI 查询远程计算机?》,敬请观看详情。远程 WMI 查询返回 0x80070005 拒绝访问时,许多管理员第一反应是账号密码输错,但真正原因往往隐藏在 DCOM 权限和防火墙规则中。本文以 Windows Server 环境为背景,梳理使用 WMI 查询远程计算机的完整流程:从启用服务、配置 Windows 防火墙和 DCOM 安全权限,到通过 WMIC 与 PowerShell 执行远程查询的具体命令,再延伸到连接超时、命名空间不可用等典型故障的排查路径。文章会给出可直接复用的命令示例,并说明哪些注册表项需要调整以及如何验证权限设置是否生效。通过这套方法,可以避免登录每台服务器手动检查,显著提升批量查询与监控效率。文中均使用 C:\Windows\System32 这类完整反斜杠路径进行表述。

Windows Server 环境中的远程管理离不开 WMI(Windows Management Instrumentation)。无论是批量获取服务器硬件信息、查询运行中的服务状态,还是收集磁盘剩余空间,WMI 都提供了统一的访问接口。但在实际运维中,从一台服务器发起 WMI 查询到另一台服务器时,经常会遇到各种报错,例如 0x80070005、0x800706BA 等。很多问题的根源并不在命令语法,而在于远程主机的安全配置没有做好。下面将围绕前置准备、常用命令和错误排查三个层面展开说明。

如何在 Windows Server 上使用 WMI 查询远程计算机?

远程查询前的必要准备

要让 WMI 远程查询成功,目标计算机上必须同时满足多项条件。首先是服务层面,Windows Management Instrumentation 服务必须处于运行状态,并且启动类型通常为自动。该服务的可执行文件位于 C:\Windows\System32\svchost.exe,对应的服务名称为 Winmgmt。可以通过服务管理单元或 sc query Winmgmt 命令查看状态。如果服务未运行,远程客户端将无法建立 WMI 连接。

其次是防火墙规则。WMI 底层依赖 RPC(远程过程调用),RPC 使用 TCP 135 端口进行端点映射,后续通信会动态分配高端端口。为了方便管理,Windows 防火墙内置了“Windows Management Instrumentation (WMI)”入站规则,只需在目标服务器上启用即可。如果不希望开放所有高端端口,也可以通过配置固定端口来限制范围,但这会增加复杂度。对于绝大多数内网管理场景,直接启用 WMI 入站规则并允许相应网段访问是比较稳妥的做法。

权限配置是另一个容易忽略的环节。WMI 远程访问同时受到 DCOM 安全权限和 WMI 命名空间安全权限两层控制。DCOM 权限在组件服务中设置,需要确保发起查询的用户具有“远程启动”和“远程激活”权限。而 WMI 命名空间本身也有自己的安全描述符,默认情况下管理员组对 root\cimv2 等命名空间拥有完整权限。如果使用非管理员账号,还必须在目标计算机上将该账号加入相应的 WMI 安全配置,否则即使 DCOM 权限正确也会被拒绝。

使用 WMIC 与 PowerShell 执行远程查询

WMIC 是 Windows 自带的命令行工具,位于 C:\Windows\System32\wbem\WMIC.exe。它可以直接对远程计算机执行 WQL 查询。下面是一个获取远程计算机型号和制造商的命令示例:

wmic /node:"192.168.10.20" /user:"CONTOSO\admin" /password:"YourPassword" computersystem get name,manufacturer,model

这里的 /node 参数指定远程计算机的 IP 地址或主机名,/user/password 用于提供凭据。注意路径中的反斜杠必须保留,例如用户名 CONTOSO\admin 中的反斜杠不能省略或写成斜杠。WMIC 的优势是命令短小,适合在批处理脚本中使用,但它的输出格式相对固定,灵活度有限。

PowerShell 提供了更强大的远程 WMI 查询能力。早期版本使用 Get-WmiObject,较新的版本推荐使用 Get-CimInstance,因为后者基于 WS-Man 协议且支持 CIM 会话复用。下面是一个使用 Get-WmiObject 查询远程操作系统版本的例子:

$cred = Get-Credential -UserName "CONTOSO\admin"
Get-WmiObject -Class Win32_OperatingSystem -ComputerName "192.168.10.20" -Credential $cred | Select-Object CSName, Caption, Version

如果希望查询效率更高并减少重复认证,可以使用 CIM 会话。 New-CimSession 会建立一个持久连接,后续多个查询可以复用同一会话,避免反复创建 DCOM/RPC 通道。下面的代码演示了查询所有固定磁盘的剩余空间:

$session = New-CimSession -ComputerName "192.168.10.20" -Credential $cred
Get-CimInstance -CimSession $session -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID, FreeSpace, Size
Remove-CimSession -CimSession $session

在 PowerShell 脚本中,使用 WQL 语句也能达到同样效果,例如 SELECT * FROM Win32_Service WHERE State = 'Running' 可以列出远程计算机上所有正在运行的服务。无论选择哪种方式,都应确保命令中涉及的计算机名称或 IP 地址准确无误,并且目标主机能够通过 DNS 或 NetBIOS 正常解析。

连接失败与权限错误排查

远程 WMI 查询失败时,错误码是最直接的线索。0x80070005 表示“拒绝访问”,通常意味着凭据有效但缺乏相应权限。此时应检查目标计算机上的 DCOM 安全设置。具体操作是运行 C:\Windows\System32\dcomcnfg.exe,展开“组件服务”->“计算机”->“我的电脑”,右键选择属性,在“COM 安全”选项卡中检查“启动和激活权限”以及“访问权限”是否包含发起查询的用户或组。如果使用非管理员账号,还需要在“我的电脑”属性的“默认属性”中确认默认身份验证级别和模拟级别没有过于严格。

另一个常见错误是 0x800706BA,它意味着 RPC 服务器不可用。造成这一问题的原因通常是目标主机防火墙未放行 TCP 135 端口,或者 Remote Procedure Call (RPC) 服务未运行。可以先在源主机上执行 Test-NetConnection -ComputerName 192.168.10.20 -Port 135 来测试端口连通性。如果端口不通,优先排查防火墙规则。若端口通畅但仍报 RPC 不可用,则需登录目标服务器检查 RPC 服务状态,并确认没有组策略限制匿名访问。

命名空间不可用也是常见现象。例如查询 root\defaultroot\MicrosoftIISv2 等非默认命名空间时,如果目标主机没有安装相应组件或该命名空间的安全权限未授予当前用户,就会返回“无效命名空间”或“拒绝访问”。此时可以使用 Get-WmiObject -Namespace root -Class __NAMESPACE 在目标主机上枚举所有可用命名空间,确认所需命名空间是否存在。对于自定义应用创建的 WMI 提供程序,还需检查其注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM 下的相关配置是否正确。

综合来看,WMI 远程查询的核心在于打通网络、服务和权限三个环节。只要前置条件配置到位,后续无论是使用 WMIC 还是 PowerShell,都能稳定地获取远程计算机的管理信息。遇到问题时,按照错误码分类排查,往往能快速定位到防火墙、DCOM 或命名空间的具体配置缺陷。

WMI远程查询Windows Server修改时间:2026-08-23 15:21:18

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。