是否有可靠的方法來確定導致 Windows 10 的作業系統升級歷史記錄或是否是全新安裝?
答案1
十個論壇上有一個關於單獨主題的優秀教學:
如何將使用者設定檔資料夾移至 Windows 10 中的另一個位置
在該教程中,作者說了以下內容:
我們需要編輯 Windows 註冊表以「欺騙」Windows 認為這是全新安裝而不是升級。為此,請打開登錄編輯器(WIN + R,輸入 regedit,按 Enter 鍵),瀏覽至金鑰HKEY_LOCAL_MACHINE\SYSTEM\Setup
刪除兩個雙字升級(右窗格)和鑰匙升級(左窗格),請參閱螢幕截圖。
作者隨後的螢幕截圖顯示了註冊表中的相應條目:
註冊表中的以下區域似乎是確定 Windows 10 安裝是否升級的關鍵:
HKEY_LOCAL_MACHINE\SYSTEM\Setup
為了證明這個理論,我首先在我的測試機上全新安裝了 Windows 10,並仔細檢查了註冊表的相同區域。關鍵Upgrade
是明顯不存在:
接下來,我使用另一台機器全新安裝了 Windows 7,然後就地升級到 Windows 10。
請注意,該Upgrade
密鑰以及相關Source OS
密鑰都存在。如果我們仔細查看該Source OS
密鑰,我們會看到以下內容:
你可以清楚地看到Windows 7 企業版ProductName
列為與鍵相關的值Source OS
。
社區回饋引發了額外的研究。看看另一台最初透過全新安裝 Windows 10 RTM 基線(版本 1507)的計算機,我們看到以下內容:
儘管這台電腦的作業系統是透過全新安裝來配置的,但Upgrade
密鑰仍然存在。但是,當我們檢查每個金鑰時,我們可以看到每個更新的日期與前兩個主要 Windows 10 功能更新版本(版本 1511 和 1607)大致對應Source OS
的時間範圍。ProductName
Windows 10 專業版,即使是最舊的Source OS
鍵。新的Source OS
鑰匙有一個額外的線索:
最新更新顯示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
}