#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")
Комментариев нет:
Отправить комментарий