【问题标题】:Find the extended "ver" information for remote Windows computer查找远程 Windows 计算机的扩展“版本”信息
【发布时间】:2017-12-19 11:44:48
【问题描述】:

Windows 10.0.16299 在“ver”命令的输出中添加了一个新的“更新构建版本”(“UBR”)编号:

截至 2017 年 12 月 17 日,完全更新的 Windows 10 计算机报告: C:\> ver Microsoft Windows [Version 10.0.16299.125]

在我的网络上花费数小时更新工作站后,我发现只有不到 25% 的工作站实际安装了所有待处理的更新。

我非常希望在周末安装这些更新,以避免用户在一周内感到沮丧。

我混合了Microsoft Windows [Version 10.0.16299.15]Microsoft Windows [Version 10.0.16299.98] 以及很多无法完全更新但仍然显示Microsoft Windows [Version 10.0.15063](这些必须使用使用媒体创建工具下载的新 ISO 进行更新)。

UBR“.125”似乎很关键,因为它是系统完全成功更新所有最新补丁的单一指标。

WMIC、PowerShell 和 SystemInfo 不会在其输出中的任何位置包含此信息 - 它们仅报告“10.0.16299” - 操作系统和内部版本号。

我发现获取 UBR 值的唯一方法是使用“psexec”直接在远程系统上运行“ver”命令: psexec \\remotepc cmd /c ver -- 但是每个系统需要 23 秒,这似乎很慢......

有没有更快的方法从远程计算机获取 UBR 编号或“ver”的确切结果?

谢谢。

【问题讨论】:

    标签: windows windows-10 psexec wmic windows-update


    【解决方案1】:

    谢谢!

    我没有启用远程 powershell 脚本,但我似乎启用了远程注册表。

    我可以使用 'reg.exe' 从远程系统读取 UBR 的值,没有任何延迟:

    @echo off
    
    for /f "tokens=3 usebackq" %%h in (`reg query "\\%1\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR`) do (
      set /a UBR=%%h 
      echo %UBR%
    )
    

    如果我创建包含上述代码的“readubr.bat”,那么:

    C:\> readubr.bat localhost
    125
    
    c:\> readubr.bat ss_ccstation
    125
    
    C:\> readubr.bat ss_shared
    125
    

    【讨论】:

    • 这种检查 UBR 的方法存在潜在问题。在我更新的最后一个系统上,UBR 注册表项不存在。我登录系统,UBR值还是不见了。我重新启动:它仍然丢失。它出现在我下次登录后...
    • 不错的解决方案。潜在问题:您是说在注意到丢失的 UBR 值和最终出现​​之间没有安装更新?快速提示启用远程注册表访问所需的内容可能会有所帮助。考虑将所有附加信息直接添加到答案中并自行接受。
    • 是的 - 没有安装更新,只需重新启动和登录几次 'reg' 命令可能返回错误 - readubr.bat 需要更新以检查。今天白天我检查了另一个系统并没有得到任何响应,然后再次检查并得到预期的“125”——让我觉得这里还有更多我不明白的地方......
    • 至于远程注册表访问——我很确定我在过去 10 年的某个时间点在我的活动目录的组策略中设置了它......
    【解决方案2】:

    我假设您正在寻找 W10 UBR (UpdateBuildRevision) 版本号。

    如果您的远程计算机设置为 PowerShell 远程处理,您可以使用(例如,对于远程计算机 remotepc,来自 提升 会话):

    Invoke-Command { 
      Get-ItemPropertyValue 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' UBR
    } -ComputerName remotepc
    

    the OP's own, remote-registry solution 相比,这种方法的优势在于您可以并行定位多台机器,默认情况下最多为32 台(参见Get-Help Invoke-Command)。

    虽然远程注册解决方案比PowerShell remoting 更容易配置,但它仍需要预先配置:所有目标计算机上所需RemoteRegistry 服务的启动类型默认为手动启动,因此默认情况下运行。

    这是 OP 自己的解决方案的 PowerShell 等效项;假定$machine 包含目标机器的名称:

    [int] (-split -join 
      (reg query "\\$machine\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR)
    )[-1]
    

    【讨论】:

      猜你喜欢
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2013-01-04
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多