查找远程Windows计算机

时间:2017-12-17 21:30:37

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

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

感谢。

2 个答案:

答案 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]