如何查找 Windows 10 的内部版本

如何查找 Windows 10 的内部版本

在 Windows 10 测试版期间,除非将版本发布到桌面,否则很难知道您运行的是哪个版本。一旦没有发布到桌面,您如何知道您运行的是哪个版本/构建?

随着微软开始发布更多采用新更新机制的版本,这将成为一个更大的问题。

答案1

WMI 目前没有可用于完全识别 Windows 10 版本(如 1607)或完整内部版本号(如 10.0.14393.577)的属性。如其他评论所述,此信息在注册表中的此项下可见:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

该项中的以下值与 winver.exe 程序显示的信息相对应:

ReleaseID = Version (name based on year/month of release: 1507, 1511, 1607, 1703, etc.)
CurrentBuild or CurrentBuildNumber = OS Build (part before period)
UBR = OS Build (part after period)

此外,版本数字该注册表项中的这两个值是:

CurrentMajorVersionNumber = 10
CurrentMinorVersionNumber = 0

当版本(如 1607)更改或安装 Insider 版本时,版本会发生变化。但是,UBR(更新版本修订版)会随着某些更新而发生变化,如下所示在微软的发布列表中

在 PowerShell 中,

[System.Environment]::OSVersion.Version

返回与注册表项相同的 Major、Minor 和 Build,但它似乎总是将 Revision 报告为 0。来自 Reddit 用户的一段代码提供了适当的替代方案,其中包括来自注册表的 UBR 作为修订号:

$WinVer = New-Object -TypeName PSObject
$WinVer | Add-Member -MemberType NoteProperty -Name Major -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMajorVersionNumber).CurrentMajorVersionNumber
$WinVer | Add-Member -MemberType NoteProperty -Name Minor -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentMinorVersionNumber).CurrentMinorVersionNumber
$WinVer | Add-Member -MemberType NoteProperty -Name Build -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' CurrentBuild).CurrentBuild
$WinVer | Add-Member -MemberType NoteProperty -Name Revision -Value $(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' UBR).UBR
$WinVer

答案2

GUI:设置、系统、关于

不确定这是否是“正确”的方法,但你可以得到Win10 发声/谈论的“版本”(1511、1607 等)通过这个cmd:

Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ReleaseId

这是微软将版本号与 Win10“版本”关联的页面备份链接[wiki] 以防万一)。当我从远程 PC 获取构建编号时,它帮助了我:wmic /node:HOSTNAME os get BuildNumber

答案3

检查 Windows 10 的版本或内部版本号没有什么帮助,因为它不会随着时间的推移而改变。

事实证明,第一句话是错误的;这在以前所有版本的 Windows 中都是正确的,但我们现在处于一个新的 Windows 10 世界中。10525与“RTM”相比,最新的内部版本的内部版本号为:10240

有几种方法可以在命令行上获取版本号:

systeminfo.exe
(Get-CimInstance -ClassName Win32_OperatingSystem -Namespace root/cimv2).BuildNumber
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name CurrentBuild).CurrentBuild

三个中最后一个是最快的。

如果您更喜欢 GUI,您可以使用 winver.exe 或大多数 Windows 桌面应用程序菜单About中的条目。Help

由于不再提供服务包,操作系统上的补丁级别取决于已安装的更新。有几种方法可以找到这些更新,GUI、systeminfo.exe、wmi 等。

执行此类操作的最推荐且最有效的方法是使用 PowerShell:

Get-HotFix

显示类似以下内容:

Source        Description      HotFixID      InstalledBy          InstalledOn
------        -----------      --------      -----------          -----------
WIN10         Security Update  KB3074663     NT AUTHORITY\SYSTEM  7/17/2015 12:00:00 AM
WIN10         Security Update  KB3074667     NT AUTHORITY\SYSTEM  7/21/2015 12:00:00 AM
WIN10         Security Update  KB3074674     NT AUTHORITY\SYSTEM  7/24/2015 12:00:00 AM
WIN10         Update           KB3074678     NT AUTHORITY\SYSTEM  7/31/2015 12:00:00 AM

您可以过滤过去 10 天的更新:

Get-Hotfix | Where {$_.InstalledOn -gt $(Get-Date).AddDays(-10) -and $_.Description -eq "Update"}

或者显示最近安装的三个更新:

Get-Hotfix | Sort-object InstalledOn -Descending | Select -First 3

您可以检查是否安装了特定更新:

if ((get-hotfix -id kb3087916) -ne $null) {"patched..."}

您可以首先在线查找最新的补丁 kb 号,例如:

(New-Object Net.WebClient).DownloadString('https://microsoft.com/...')

然后检查它是否存在于机器上。

注意:这只是一个例子。我不知道目前有哪个页面列出了这些内容,你仍然需要解析它。

问题是:随着时间的推移,微软是否会对 Windows 10 的功能进行大量改变,以至于您必须检查它才能使您的应用程序或脚本正常运行。

检查系统上是否存在您需要的特定功能可能比查找版本号更好。

答案4

PowerShell 始终是答案:

Get-CimInstance win32_operatingsystem

更多信息:

Get-CimInstance Win32_OperatingSystem | Select-Object buildnumber,version

返回:

版本号
----------- -------
10240 10.0.10240

您可以使用它来快速获取该信息,此外,您可以将其构建为一个函数并使用它来从整个车队中获取该信息(如果需要)。

相关内容