Windows 10 的注册表版本值?

Posted

技术标签:

【中文标题】Windows 10 的注册表版本值?【英文标题】:Registry edition values of Windows 10? 【发布时间】:2021-12-05 05:31:18 【问题描述】:

我想从注册表获取 Windows 10 操作系统版本。我正在阅读以下 C# 代码中的注册表项以获取 Windows 10/11 操作系统的版本:

SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID

这是 C# 代码:

using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion"))

     if (key != null)
     
         var keyValue = key.GetValue("EditionID");
         var osEdition = keyValue.ToString();
     

我需要知道此 EditionID 密钥中将出现的字符串,用于各种风格的 Windows 10 版本。我无法获得任何相关的 Microsoft 文档。 Windows 10 主要版本如下:

    Windows 10 专业版 适用于工作站的 Windows 10 专业版 Windows 10 教育版 Windows 10 专业教育版 Windows 10 企业版 Windows 10 企业版 2019 LTS/LTSC/LTSB Windows 10 家庭版

我的 PC 上有一个 Enterprise 版 Windows 10 操作系统。所以我知道对于Enterprise 版本,此注册表值为Enterprise。我需要知道其余的。

【问题讨论】:

所以基本上你只想要windows 10,你试过使用Environment.OSVersion并检查主要版本是10吗? 我可以通过读取 SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentMajorVersionNumber 注册表项来检测 Windows 10 操作系统。但我对特定版本的 Windows 10 感兴趣,例如我想知道它是否有Pro for Workstations 版本。 我知道您目前专注于版本问题,但您是否真的需要版本,或者您是否需要知道某些 windows 功能 是否可用,并且您正在使用前者作为后者的代理?因为如果是这样,您应该切换到功能测试。 我的问题是弄清楚当前机器操作系统是否可以注册到 Windows Autopilot。只有某些特定版本的 Windows 10 和 Windows 11 支持它。据我所知,检查操作系统版本是了解这一点的唯一方法。如果功能检查可以告诉我此功能,那就太好了。我更新了帖子的标题,让我的意图更加明确。 这似乎是一件非常需要检查的事情,将来也可能会发生变化。它非常具体,可能不值得检查,而是尝试注册它并查看它是否失败,具体结果是不支持 Windows 的版本/版本。 【参考方案1】:

已确认 适用于工作站的 Windows 10 专业版 - ProfessionalWorkstation

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 你是怎么找到这个值的?你是在自己的电脑上看到的吗?如果是,请发布屏幕截图。会有帮助的。【参考方案2】:

我已经获得了其中的一些。如果您发现有人安装在您的办公室、学校或家中,请随时编辑此帖子。

Windows 10 专业版 - “专业版” Windows 10 Pro for Workstations - “ProfessionalWorkstation” Windows 10 教育版 - “教育版” Windows 10 专业教育版 - “专业教育” Windows 10 企业版 - “企业版” Windows 10 企业版 2019 LTS/LTSC/LTSB - ?? Windows 10 主页 - “主页”

【讨论】:

【参考方案3】:

鉴于您尝试解决的问题的描述以及我正在尝试做类似事情的事实,我偶然发现了仪器管理中的 Win32_OperatingSystem 类。

var query = new SelectQuery("SELECT * FROM Win32_OperatingSystem");
var searcher = new ManagementObjectSearcher(query);
var results = searcher.Get().OfType<ManagementObject>().First();

在此之后,您可以使用“Caption”属性来获取已安装 Windows 版本的确切字符串。 我举了三个例子:

10 Enterprise Multisession = 适用于虚拟桌面的 Microsoft Windows 10 Enterprise 常规 10 企业版 = Microsoft Windows 10 专业版 Server 2012R2 = Microsoft Windows Server 2012 R2 标准版

您还可以挖掘该类的其他属性以尝试获取所需的信息。

【讨论】:

以上是关于Windows 10 的注册表版本值?的主要内容,如果未能解决你的问题,请参考以下文章

windows10版本1709 在桌面和文件中点击右键刷新,会引起卡顿

如何在 Windows 中禁用 IPv6 或其组件

如何通过 Windows 10 上的注册表找到默认浏览器

更改 EnableDesktopModeAutoInvoke 注册表值并使 TabTip.exe 接受更改

Windows10安装多个版本的PostgreSQL数据库,但是均没有自动注册Windows服务的解决方法

win10电脑开机出现critical service failed