查找远程Windows计算机的扩展“ver”信息

问题描述 投票:3回答:2

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

截至12/17/2017,完全更新的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]的混合(这些必须使用Media Creation Tool下载的新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
2个回答
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

0
投票

我假设您正在寻找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服务的启动类型默认为手动启动,因此默认情况下不运行。

这是与PowerS自己的解决方案相当的PowerShell;假设$machine包含目标机器的名称:

[int] (-split -join 
  (reg query "\\$machine\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR)
)[-1]
© www.soinside.com 2019 - 2024. All rights reserved.