#windows #version #registry
#Windows #версия #реестр
Вопрос:
Как определить, используя только реестр: Версию Windows (XP, Vista, 7). Издание (Home Premium, Professional, Ultimate). И уровень пакета обновления (бета, RTM, SP1, SP2).
Это связано с тем, что я выполняю ремонт в автономной системе. Реестр автономных систем можно смонтировать и получить к нему доступ.
Ответ №1:
Используйте значения в HKLMSOFTWAREMicrosoftWindows NTCurrentVersion
. Я полагаю, вы знаете, где найти этот куст?! Соответствующий куст можно найти под %SystemRoot%System32config
названием SOFTWARE
.
Примечание: вы можете попытаться проверить свои результаты, просмотрев некоторые хорошо известные файлы (например, kernel32.dll
, ntdll.dll
) и их информационный ресурс о версии (то, что вы ищете, это версия файла: с, например GetFileVersionInfo()
).
Значения редакции, если это необходимо, можно найти на HKLMSYSTEMCurrentControlSetControlProductOptions
. Смотрите здесь.
Комментарии:
1. Для загрузки hive вы используете
regedit
. Вы можете сделать это с любого компьютера с Windows и это не должно повлиять на вашу установку. Просто загрузите hive и выберите какое-нибудь временное имя для новой ветви. Подробнее здесь: zeda.nl/index.php/en/load-user-registry-hive-in-regedit
Ответ №2:
Все, что вам нужно, есть в HKLMSOFTWAREMicrosoftWindows NTCurrentVersion
.
Однако я полагаю, что эти значения могут быть подделаны, поэтому будьте осторожны.
Комментарии:
1. EditionID, CSDVersion, BuildLab, название продукта и т.д. … Там много избыточности, и я думаю, что ни один из них не является надежным. Вероятно, наиболее описательным является BuildLab; для меня это:
7601.win7sp1_rtm.101119-1850
. Однако вам все равно понадобится идентификатор редакции (HomePremium
и т.д.).2. есть ли тогда лучший способ? например, запрашивать версию файла какого- какого системного файла?
3. последний можно найти по адресу
HKLMSYSTEMCurrentControlSetControlProductOptions
4. @unixman83: Запрос файлов (решение от @STATUS) будет работать для большинства приложений, но не для версии (Home Premium vs Ultimate).
5. @unixman83: подойдет любой известный файл. Убедитесь, что это подписанная (и действительная) версия файла. Что должно быть возможно начиная с XP. В 2000 году, я думаю, не все были подписаны.
Ответ №3:
Используя Linux, здесь Ubuntu, вы можете использовать chntpw
.
Я сделал это:
sudo apt install chntpw
chntpw -e /path/to/windisk/Windows/System32/config/SOFTWARE
cat MicrosoftWindows NTCurrentVersionProductName
и было сказано, что версия была Windows 10 Home
. Обратите внимание, что заглавные буквы в пути могут отличаться в разных версиях, поэтому посмотрите, не работает ли это. В одном из приложений также упоминается RegBack
папка, указывающая путь к нему (извините, я забыл где).
Дополнительные сведения можно найти с помощью других ключей. Чтобы перечислить другие ключи в CurrentVersion
, находясь в chntpw
, выполните
ls MicrosoftWindows NTCurrentVersion