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]
(这些必须使用下载的新ISO进行更新媒体创作工具)。
UBR“.125”似乎很关键,因为它是一个指示系统完全成功更新的所有最新补丁。
WMIC,PowerShell和SystemInfo在其输出中的任何位置都不包含此信息 - 它们仅报告“10.0.16299” - 操作系统和内部版本号。
我发现获取UBR值的唯一方法是使用“psexec”直接在远程系统上运行“ver”命令:
psexec \\remotepc cmd /c ver
- 但每个系统需要23秒,这似乎很慢......
是否有更快的方法可以从远程计算机获取UBR号码或'ver'的确切结果?
感谢。
答案 0 :(得分: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
答案 1 :(得分:0)
我假设您正在寻找W10 UBR (UpdateBuildRevision)版本号。
如果远程计算机已设置为PowerShell远程处理,则可以使用(例如,远程计算机remotepc
,来自提升会话):< / p>
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
服务的启动类型默认为手册启动,因此默认情况下不正在运行。
这是&lt; PowerShell等同于OP自己的解决方案;假定$machine
包含目标计算机的名称:
[int] (-split -join
(reg query "\\$machine\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR)
)[-1]