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

远程计算机Google Chrome版本获取脚本无返回值问题求助

问题排查与修复方案

你的脚本里$Version始终为空,核心原因很明确:Win32_Product这个WMI类只追踪通过Windows Installer(MSI)包安装的程序,而现在Google Chrome默认用的是自己的独立安装程序,根本不会出现在Win32_Product的结果里,自然拿不到版本号。

下面给你两个靠谱的替代方案,都是企业环境里常用的方法:

方案1:读取远程机器的注册表(推荐)

Chrome的版本信息会存在系统注册表的卸载项里,64位系统可能在32位兼容路径下,我们可以远程读取这些路径:

$machines = Get-content -Path C:\Users\user\Desktop\machines.txt
ForEach($machine in $machines){
    # 先尝试64位注册表路径,再尝试32位兼容路径
    $regPaths = @(
        "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome",
        "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome"
    )
    $foundVersion = $null
    foreach($path in $regPaths){
        try{
            # 转换为远程注册表访问格式(把冒号换成$)
            $remotePath = "\\$machine\$($path.Replace(':', '$'))"
            $foundVersion = Get-ItemProperty -Path $remotePath -Name DisplayVersion -ErrorAction Stop | Select-Object -ExpandProperty DisplayVersion
            if($foundVersion){
                break # 找到版本号就跳出循环,不用再试下一个路径
            }
        }
        catch{
            # 路径不存在就跳过,继续试下一个
            continue
        }
    }
    if($foundVersion){
        Write-Host "$machine - $foundVersion"
    }else{
        Write-Host "$machine - 未找到Google Chrome,或无远程访问权限"
    }
}

注意事项

  • 运行脚本的账号需要有目标机器的管理员权限
  • 目标机器必须开启Remote Registry服务,且防火墙允许远程注册表访问

方案2:用WMI查询注册表项(更轻量化的远程调用)

如果不想依赖远程注册表服务,也可以直接通过WMI查询注册表值:

$machines = Get-content -Path C:\Users\user\Desktop\machines.txt
ForEach($machine in $machines){
    # 先查64位路径的版本号
    $chromeInfo = Get-CimInstance -ComputerName $machine -ClassName Win32_RegistryValue -Filter "KeyPath='SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Google Chrome' and ValueName='DisplayVersion'" -Namespace root\cimv2 -ErrorAction SilentlyContinue
    # 没找到就查32位兼容路径
    if(-not $chromeInfo){
        $chromeInfo = Get-CimInstance -ComputerName $machine -ClassName Win32_RegistryValue -Filter "KeyPath='SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Google Chrome' and ValueName='DisplayVersion'" -Namespace root\cimv2 -ErrorAction SilentlyContinue
    }
    if($chromeInfo){
        Write-Host "$machine - $($chromeInfo.Value)"
    }else{
        Write-Host "$machine - 无法获取Chrome版本信息"
    }
}

额外提示

如果Chrome是按用户单独安装(不是全局安装),版本信息会存在HKCU(当前用户注册表)下,这种情况远程读取需要对应用户的权限,操作难度会大很多——企业环境一般都是全局安装,所以上面的方案足够覆盖大部分场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:54:22