Как узнать, была ли 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\Настройка

Удалить обаДВОЙНОЕ СЛОВООбновление (правая панель) иКЛЮЧОбновление (левая панель), см. снимок экрана.

На последующем снимке экрана автора отображаются соответствующие записи в реестре:

Удалить Обновление DWORD

Следующая область реестра, по-видимому, является ключом к определению того, была ли установка Windows 10 обновлением:

HKEY_LOCAL_MACHINE\SYSTEM\Настройка

Чтобы доказать эту теорию, я сначала инициировал чистую установку Windows 10 на моей тестовой машине и тщательно изучил ту же область реестра. Ключ, Upgradeочевидно, отсутствует:

Настройка системы HKLM

Затем я использовал другой компьютер для чистой установки Windows 7, а затем выполнил обновление до Windows 10 на месте. Посмотрев на ту же область реестра, я увидел следующее:

Реестр - Обновление настроек

Обратите внимание, что Upgradeключ присутствует, вместе с соответствующим Source OSключом. Если мы внимательно посмотрим на Source OSключ, то увидим следующее:

Реестр - Обновление исходной ОС

Вы можете ясно видетьWindows 7 Корпоративнаяуказан как значение для , ProductNameсвязанное с Source OSключом.

Обратная связь от сообщества привела к дополнительному исследованию. Взглянув на другую машину, которая изначально была настроена с чистой установкой базовой версии RTM Windows 10 (версия 1507), мы видим следующее:

Обновление реестра — исходная ОС 1511

Хотя ОС этого компьютера была настроена через чистую установку, Upgradeключ все еще присутствует. Однако, когда мы изучаем каждый Source OSключ, мы видим, что даты для каждого обновления соответствуют примерно тем же временным рамкам, что и первые два основных выпуска обновлений функций Windows 10: версии 1511 и 1607. Кроме того, значение для ProductNameпоказываетWindows 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
}

Связанный контент