Как определить версию Windows, установленную на съемном диске

Я не могу узнать, как определить версию Windows, установленную на съемном/подчиненном диске. В своем поиске я обнаружил класс DriveInfo, в котором есть несколько интересных вещей, но он не показывает мне, есть ли на диске XP, Vista или выше (мне нужно это знать, поскольку у них разные структуры каталогов, и я хочу автоматизировать процесс резервного копирования своих данных).

Придется ли мне как-то обращаться к реестру диска? Я хочу избежать этого, если это возможно, потому что это сложно, и в конце концов я просто хочу сделать что-то вроде (дерьмовый псевдокод):

если диск.имеет(XP), то

еще

конец, если

Любая помощь будет принята с благодарностью. Спасибо.


person user3900520    schedule 09.10.2014    source источник


Ответы (3)


Альтернативный способ определения версии операционной системы задокументирован на странице MSDN "Получение версии системы":

Чтобы получить полный номер версии операционной системы, вызовите функцию GetFileVersionInfo в одной из системных библиотек DLL, например Kernel32.dll, а затем вызовите VerQueryValue, чтобы получить подблок \StringFileInfo\\ProductVersion информации о версии файла.

К счастью, это будет работать для автономных инстансов так же, как и для работающего инстанса. Единственная реальная сложность возникает, если вам нужно справиться с возможностью того, что системной папке было присвоено нестандартное имя.

person Harry Johnston    schedule 09.10.2014

От Есть ли способ узнать мою версию Windows 7 без загрузки?, но не программиста, а опытного пользователя.

Go to

C:\Windows\System32

прочитать файл license.rtf

Поскольку у вас есть доступ ко всем файлам на съемном диске... верно? теперь речь идет об использовании VB.NET для анализа файла RTF.

person kennyzx    schedule 09.10.2014

Вы можете сделать это с помощью regedit.

Импортируйте программный куст из реестра рассматриваемого диска с помощью regedit. Он находится в папке %SYSTEMROOT%\system32\config. Неважно, куда вы его импортируете (допустим, HKEY_LOCAL_MACHINE) или какое имя вы выберете. Regedit обычно находится в C:\Windows. При необходимости его можно запустить из командной строки.

Затем проверьте версию в ключе (HKEY_LOCAL_MACHINE//Microsoft/Windows NT/CurrentVersion) под импортированным кустом.

Подробнее здесь: https://blog.skullsecurity.org/2010/find-the-windows-version-offline

person Dale Newton    schedule 15.08.2019
comment
Спасибо Дейлу Ньютону, это очень креативная идея, я не рассматривал возможность просмотра реестра диска и сделать это таким образом. Эта методология делает его таким, как будто он вообще не работает в автономном режиме! Ваше здоровье. - person user3900520; 21.10.2019