O bcdedit / v fornecerá o caminho completo para o VHD inicializado no momento.
Eu tenho um computador físico no qual tenho duas entradas BCD para inicializar VHDs. Eu estou procurando uma maneira de obter o nome do VHD atual que foi inicializado programaticamente. Eu vejo possíveis soluções ao usar o Hyper-V, mas estou inicializando em uma máquina física nesse cenário. Eu vi o mesmo comportamento definido no Windows 7 e no Windows 8.1
A saída de BCDEDIT e WMI (classe BCDSTORE) não mostra o nome do arquivo para o VHD inicializado (a segunda entrada é para o segundo VHD, a terceira entrada é para a inicialização atual):
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-us
inherit {globalsettings}
default {default}
resumeobject {4c6d3c84-4bb6-11e3-bc07-b5a095a1a2a8}
displayorder {default}
{current}
{4c6d3c81-4bb6-11e3-bc07-b5a095a1a2a8}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {default}
device vhd=[D:]\VHD\v2.vhd
path \Windows\system32\winload.exe
description Windows Embedded Standard
locale en-us
inherit {bootloadersettings}
osdevice vhd=[D:]\VHD\v2.vhd
systemroot \Windows
resumeobject {4c6d3c84-4bb6-11e3-bc07-b5a095a1a2a8}
nx OptIn
detecthal Yes
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {4c6d3c82-4bb6-11e3-bc07-b5a095a1a2a8}
nx OptIn
bootstatuspolicy IgnoreAllFailures
Eu percebo que eu poderia especificar o nome do arquivo na descrição, mas para o aplicativo final, eu preciso usá-los para rotulá-los para o usuário final.
Tags vhd boot-to-vhd