You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell远程批量查询域内计算机的Windows版本(如22H2)

解决PowerShell远程查询域内计算机Windows DisplayVersion的问题

常见问题原因及解决办法

1. 32位/64位注册表重定向导致路径错误

本地执行时默认用64位PowerShell访问原生HKLM路径,但远程会话可能默认使用32位PowerShell,会自动重定向到HKLM:\SOFTWARE\Wow6432Node,该路径下不存在DisplayVersion键值,从而报错。

解决方法:强制指定64位PowerShell会话执行命令:

Invoke-Command -ComputerName "PC01","PC02" -ScriptBlock {
    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name DisplayVersion -ErrorAction Stop
} -ConfigurationName Microsoft.PowerShell

-ConfigurationName Microsoft.PowerShell会强制使用64位PowerShell会话(对应64位注册表视图)。

2. 权限不足

确保执行命令的账号满足两个条件:

  • 属于远程计算机的Remote Management Users组或本地管理员组,拥有WinRM远程访问权限
  • 拥有读取远程计算机HKLM注册表项的权限

3. WinRM服务未配置或防火墙拦截

先确认远程计算机已开启WinRM服务:
在远程计算机上执行(需管理员权限):

winrm quickconfig

该命令会自动配置WinRM服务、开放防火墙默认端口(5985)。

更可靠的替代方案:使用CIM查询

直接通过WMI/CIM获取系统版本信息,避免注册表路径问题:

Invoke-Command -ComputerName "PC01","PC02" -ScriptBlock {
    (Get-CimInstance -ClassName Win32_OperatingSystem).DisplayVersion
}

这种方法无需依赖注册表路径,兼容性更强,适用于绝大多数Windows版本。

内容的提问来源于stack exchange,提问作者Hosam Alharbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:42:38