如何判斷 Windows 10 是全新安裝還是從 7/8 升級?

如何判斷 Windows 10 是全新安裝還是從 7/8 升級?

是否有可靠的方法來確定導致 Windows 10 的作業系統升級歷史記錄或是否是全新安裝?

答案1

十個論壇上有一個關於單獨主題的優秀教學:

如何將使用者設定檔資料夾移至 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/Software/Microsoft/Windows/CurrentVersion/Setup/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
}

相關內容