Можно ли при загрузке к настройке VHD получить имя файла VHD?

520
Grumbles

У меня есть физический компьютер, с которого у меня есть две записи BCD для VHD для загрузки. Я ищу способ программно получить имя текущего виртуального жесткого диска, который был загружен. Я вижу возможные решения при использовании Hyper-V, но в этом сценарии я загружаюсь на физической машине. Я видел такое же поведение, установленное в Windows 7 и Windows 8.1

Выходные данные BCDEDIT и WMI (класс BCDSTORE) не показывают имя файла для загруженного VHD (вторая запись для второго VHD, третья запись для текущей загрузки):

Windows Boot Manager -------------------- identifier  device partition=D: description Windows Boot Manager locale en-us inherit  default  resumeobject  displayorder    toolsdisplayorder  timeout 30  Windows Boot Loader ------------------- identifier  device vhd=[D:]\VHD\v2.vhd path \Windows\system32\winload.exe description Windows Embedded Standard locale en-us inherit  osdevice vhd=[D:]\VHD\v2.vhd systemroot \Windows resumeobject  nx OptIn detecthal Yes  Windows Boot Loader ------------------- identifier  device partition=C: path \Windows\system32\winload.exe description Windows locale en-US inherit  osdevice partition=C: systemroot \Windows resumeobject  nx OptIn bootstatuspolicy IgnoreAllFailures 

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

0
Отличаются ли виртуальные жесткие диски каким-либо существенным образом, или это всего лишь несколько незначительных изменений? Canadian Luke 10 лет назад 0
Один сильно настроен, а другой нет. Я немного упростил свой вариант использования, но для этого проекта необходимо иметь возможность загружаться со второго виртуального жесткого диска и «исправлять» вещи. Grumbles 10 лет назад 0

1 ответ на вопрос

1
user273904

bcdedit / v предоставит полный путь для загруженного в данный момент виртуального жесткого диска.

Это не работает для меня, оно просто показывает мне информацию BCD - `/ v Параметр командной строки, который отображает идентификаторы записи полностью, а не использует имена для известных идентификаторов. Используйте / v отдельно в качестве команды для полного отображения идентификаторов записей для типа ACTIVE. Canadian Luke 10 лет назад 0
bcdedit / v показывает мне информацию, которую я ищу, но не с какой записи было загружено. Однако я могу получить эту информацию из простого "bcdedit" и сопоставить GUID "resumeobject". Все еще ищу способ сделать это в PowerShell или C #, но я буду анализировать вывод текста, если это необходимо. Grumbles 10 лет назад 0
Я не могу понять это в PowerShell, я думаю, что / V заставляет его анализировать файл хранилища и собирать информацию не в WMI. Grumbles 10 лет назад 0

Похожие вопросы