如何判断 Windows 10 是全新安装还是从 7/8 升级而来?

如何判断 Windows 10 是全新安装还是从 7/8 升级而来?

是否有可靠的方法来确定升级到 Windows 10 的操作系统历史记录或是否是全新安装?

答案1

Ten Forums 上有一个关于单独主题的优秀教程:

如何在 Windows 10 中将用户配置文件文件夹移动到另一个位置

在该教程中,作者说道:

我们需要编辑 Windows 注册表来“欺骗” Windows,使其认为这是一个全新安装,而不是升级。为此,请打开注册表编辑器(WIN + R,输入 regedit,按 Enter),浏览到键HKEY_LOCAL_MACHINE\SYSTEM\Setup

删除双字升级(右窗格)和钥匙升级(左窗格),见屏幕截图。

作者随后的屏幕截图显示了注册表中的相应条目:

删除升级 DWORD

注册表中的以下区域似乎是确定 Windows 10 安装是否为升级的关键:

HKEY_LOCAL_MACHINE\SYSTEM\Setup

为了证明这一理论,我首先在测试机上全新安装 Windows 10,并仔细检查注册表的同一区域。密钥Upgrade明显缺失:

HKLM 系统设置

接下来,我使用另一台机器全新安装 Windows 7,然后就地升级到 Windows 10。查看注册表的同一区域,我看到以下内容:

注册表 - 升级设置

请注意,Upgrade密钥是存在的,并且还有一个相关Source OS密钥。如果我们仔细查看Source OS密钥,我们会看到以下内容:

注册表 - 升级源操作系统

您可以清楚地看到Windows 7 企业版ProductName列为与键相关的值Source OS

社区反馈促成了进一步的研究。查看另一台最初安装 Windows 10 RTM 基线(版本 1507)的机器,我们看到以下情况:

注册表升级 - 源操作系统 1511

虽然这台计算机的操作系统是通过全新安装配置的,但Upgrade密钥仍然存在。但是,当我们检查每个密钥时,我们可以看到每个更新的日期与前两个主要 Windows 10 功能更新版本(版本 1511 和 1607)大致相同。此外,显示Source OS的值ProductNameWindows 10 专业版,即使是最老的Source OS钥匙也是如此。较新的Source OS钥匙有一条额外的线索:

注册表升级 - 源操作系统 1607

最新更新ReleaseId显示1511,表示更新之前正在使用的 Windows 10 的精确版本。

根据我们所看到的情况,我们可以得出以下结论

  • 注册表HKLM\SYSTEM\Setup项使我们能够确定 Windows 10 最初是全新安装还是升级安装。
  • 如果Upgrade密钥丢失,则肯定是全新安装。
  • 如果Upgrade密钥存在,它可能是由传统的 Windows 升级(从 Windows 7 或 Windows 8.x)生成的,也可能是在 Windows 10 主要功能更新(例如版本 1511 和 1607)期间创建的。
  • 如果Upgrade钥匙在那里,您需要检查Source OS钥匙。
  • 最旧的Source OS密钥将显示相应值内的原始操作系统ProductName:如果它是 Windows 7 或 Windows 8 的版本,则它是升级版。如果它是 Windows 10 的变体,则它是全新安装。

答案2

正如 Magicandre1981 在评论中所说:

查找以下值 MediaBootInstall

HKEY_LOCAL_MACHINE/软件/微软/Windows/CurrentVersion/设置/OOBE/。

如果 MediaBootInstall = 1,则 WIndows 通过 ISO/DVD 安装。

如果 MediaBootInstall = 0,则 Windows 是升级版

答案3

$Products = Get-ItemProperty -Name ProductName -Path "HKLM:\SYSTEM\SETUP\Source OS*" | select Productname -Unique
if ($Products -like '*7*')
{
WRITE-HOST Upgraded
}
ELSE
{
Write-Host Fresh Install
}

相关内容