Страницы

Поиск по вопросам

среда, 11 декабря 2019 г.

Виртуальные Диски на Windows 7

#windows #windows_7 #vbscript


Монтирую виртуальные жесткие диски cmdbatchdiskpart diskpart /s script.txt
Предварительно создав сценарий

SELECT VDISK FILE="C:\image.vhd"
ATTACH VDISK


Но хочу использовать без консоли, через VBScript

Set shell = WScript.CreateObject("WScript.Shell")
Set diskpart = shell.Exec("diskpart")


Через shell.Exec всё равно открывается консоль, а через shell.Run diskpart, 0, True
не знаю как отдавать и читать строки.

Нашёл virtdisk.dll с методами AttachVirtualDisk DetachVirtualDisk GetVirtualDiskPhysicalPath
... Но не получается использовать библиотеки в VBS, несмотря на подробную документацию
Virtual Disk Functions. Поддержка методов для Windows 7 есть, но синтаксис только для C++

Каким способом можно "тихо" подключать VHD?
При том, что аргументом будет отдаваться только путь диска
    


Ответы

Ответ 1



Пришлось создать программу, исходники и сборка тут GitHub Работает на чистой Windows 7 без обновлений на .NET Framework 3.5 Что касается системной библиотеки virtdisk.dll, она не представлена как COM-объект, поэтому сделал отдельно от приложения свою библиотеку на всякий случай. Но её нужно регистрировать через RegAsm C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm /codebase "C:\VirtualDiskManager, x64.dll" Отмена регистрации C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm /u "C:\VirtualDiskManager, x64.dll" После чего можно использовать её через VBScript Set VHD = CreateObject("VirtualDiskManager.VHD") VHD.Attach("C:\image.vhd") VHD.Detach("C:\image.vhd") VHD.Toggle("C:\image.vhd")

Комментариев нет:

Отправить комментарий