Я пытаюсь настроить Clonezilla Live iso позволяет удобно делать снимки различных установок Windows (XP, Vista, Win7, Win8). В идеале я хотел бы загрузить машину с компакт-диска, который автоматически определяет версию Windows и создает снимок с именем, содержащим ОС (что-то вроде Windows_XP_2013-06-17
).
Есть ли способ программно определить, какая версия Windows установлен на раздел NTFS, смонтированный в среде Linux live?
Ты можешь использовать струны Команда для доступа к файлам реестра, я протестировал на своем компьютере, и она сработала:
strings /media/cuonglm/Windows/Windows/System32/config/SOFTWARE | grep -e '^6.1.*' | head -n 1
Выход:
6.1.7601.17608
Это означает, что моя версия - Windows 7 SP1.
Я думаю, что это более быстрый способ, чем использование некоторых инструментов для управления свойствами PE-файлов или файлов реестра.
Есть несколько не оконных и некомандных решений, которые вы можете использовать для решения своей проблемы. Вот несколько идей, которые я подумал:
Boot.ini
Попробуйте прочитать boot.ini из текстового файла загрузочного раздела Windows (например, C: \ boot.ini). Это (обычно) информация о загрузке по умолчанию, если она не была изменена вручную. Вы можете прочитать текстовый файл и выполнить RegEx, чтобы узнать версию.
Например, в моем boot.ini есть часть «Microsoft Windows XP Professional», которую можно легко проанализировать с помощью любого регулярного выражения.
Проверить структуру файловой системы
Вы можете получить некоторое представление об общей версии Windows, посмотрев на структуру каталогов, которую она использует: Windows XP - семейство использует структуру каталогов C: \ Documents and Settings (зависит от языка), поскольку в других более поздних версиях используются каталоги другого типа.
Это не очень хорошее решение, но это одно из решений.
cmd.exe
В этом случае я не совсем уверен, но думаю, что помню, что в двоичном файле командной строки Windows (cmd.exe) хранится версия. Чтение двоичного файла и его ресурсов может помочь определить правильную версию.
Тем не менее, из всех этих решений я бы посоветовал вам попробовать прочитать boot.ini. Он настраивается пользователем, но очень редко изменяется обычными пользователями.
Вы можете получить доступ к реестру Windows с помощью таких инструментов, как chntpw
. Вам понадобятся следующие ключи, расположенные в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
:
ProductName
Version
VersionNumber
SubVersionNumber
Вы можете создать сценарий, который автоматизирует chntpw
и проанализировать ключи реестра для определения версии Windows.
Просмотр информации о версии ntoskrl.exe дает как числовые, так и текстовые результаты
me@host:/mnt$ iconv -cf utf16 Windows/System32/ntoskrnl.exe|strings|grep 6\\.
6.1.7601.18409 (win7sp1_gdr.140303-2144)
6.1.7601.18409
Получите брелок для волшебных желейных бобов. Бесплатная портативная версия работает нормально.
Запустите его и в меню инструментов выберите >> загрузить куст. Затем он показывает все ваши диски, выберите папку Windows соответствующего диска.