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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找远程Windows计算机的扩展“ver”信息相关的知识,希望对你有一定的参考价值。

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'的确切结果?

谢谢。

答案

谢谢!

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

我可以使用'reg.exe'从远程系统中无延迟地读取UBR的值:

@echo off

for /f "tokens=3 usebackq" %%h in (`reg query "\%1HKLMSOFTWAREMicrosoftWindows NTCurrentVersion" /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
另一答案

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

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

Invoke-Command { 
  Get-ItemPropertyValue 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' 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 "\$machineHKLMSOFTWAREMicrosoftWindows NTCurrentVersion" /v UBR)
)[-1]

以上是关于查找远程Windows计算机的扩展“ver”信息的主要内容,如果未能解决你的问题,请参考以下文章

Windows 渗透漏洞 流程大总结

VNC 远程Windows 无声音

什么是WMI 有什么用?

windows Server 2012/2016 路由和远程访问,PPPOE,ADSL,连接接口时出现一个错误,连接被远程计算机终止

如何从 PowerShell 命令行查找 Windows 版本

windows xp远程连接出来错误“由于数据加密错误,这个会话将结束.请重新连接到远程计算机