如何通过PowerShell获取Windows代号?是否有含20H2的Get-CimInstance类?
获取Windows版本代号(如20H2)的PowerShell方法(适用于7.3.2版本)
下面是几种可靠的方法,帮你获取Windows的版本代号(比如对应10.0.19042的「20H2」):
方法1:直接读取注册表(最简便)
Windows系统会将版本代号存储在注册表中,用Get-ItemProperty直接读取即可:
(Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').DisplayVersion
执行后会直接返回类似「20H2」的字符串,这是最直接的方式。
方法2:结合Get-CimInstance与注册表查询
如果你倾向于用CIM类操作,可以通过Win32_RegistryValue类读取对应注册表值:
$displayVersion = Get-CimInstance -ClassName Win32_RegistryValue -Filter "KeyPath='SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion' AND ValueName='DisplayVersion'" $displayVersion.Value
这个方法完全基于CIM操作,返回结果和方法1一致。
方法3:通过BuildNumber映射代号(手动匹配)
如果需要从系统版本号(如10.0.19042)反向推导代号,可以先获取BuildNumber,再手动匹配:
$os = Get-CimInstance -ClassName Win32_OperatingSystem $buildNumber = $os.BuildNumber # 根据BuildNumber映射代号,示例: switch ($buildNumber) { 19042 { "20H2" } 19043 { "21H1" } 19044 { "21H2" } # 可根据需要添加更多版本映射 }
这种方式需要维护版本映射表,适合需要批量处理或离线环境的场景。
需要注意的是,以上方法均在PowerShell 7.3.2版本中测试有效,且适用于Windows 10/11系统。
内容的提问来源于stack exchange,提问作者lit
相关产品推荐
相关产品推荐

