Мені потрібно зняти VHD з пакетним сценарієм в Windows 10. Єдине знайдене нами рішення в Інтернеті було спрямовано на Windows 7 і включало Diskpart. Чи є в наявності інші інструменти рідного командного рядка Windows, які можуть виконати цю роботу?
Мені потрібно зняти VHD з пакетним сценарієм в Windows 10. Єдине знайдене нами рішення в Інтернеті було спрямовано на Windows 7 і включало Diskpart. Чи є в наявності інші інструменти рідного командного рядка Windows, які можуть виконати цю роботу?
Відповіді:
Оскільки я не знайшов способу покластися лише на інструменти командного рядка, встановлені MS, я перелічу рішення сторонніх розробників.
WinApiExec
WinApiExec дозволяє користувачеві викликати API Windows з командного рядка. 32-бітовий виконуваний файл має розмір лише 3,5 КБ (x64: 5,5 КБ), і тому смішно невеликий, вводячи якомога менше накладних витрат.
winapiexec.exe virtdisk.dll@OpenVirtualDisk $a:2,0 "C:\Example Path\Test.vhd" 262144 0 0 $b:4 , virtdisk.dll@DetachVirtualDisk $$:7@0 0 0
vMount
vMount підтримує досить багато функцій, пов'язаних з VHD. Його розмір (x86: 432KB; x64: 2,53MB) є досить величезним для просто виклику WinApi, тому це не є рішенням мого сценарію, але може бути корисним іншим.
vmount detach \\.\PhysicalDriveX
DiskPart
Для повноти також слід згадати DiskPart. Він підтримує велику кількість функцій, пов’язаних з диском, але має досить млявий спосіб зробити це для автоматизації інакше необхідного введення користувачем для цілей сценаріїв. Це також єдиний інструмент у списку, який потрапить у цикл, якщо випадково запустити сценарій без підвищених прав.
Збережіть наступні два рядки у текстовому файлі:
vdisk file="C:\Example Path\Test.vhd"
detach vdisk
Тепер Dism може розібрати текстовий файл як форму файлу відповідей без нагляду:
DISKPART /s C:\Path_to\Name_Of_Textfile.txt
Ви можете змонтувати та відключити vhd / vhdx за допомогою рідної Windows 10 Powershell:
Import-module hyper-v
Dismount-VHD -Path 'c:\my.vhd'
Від cmd / bat:
powershell -command "Import-module hyper-v; Dismount-VHD -Path 'c:\my.vhd'"
В будь-якому випадку вам доведеться використовувати підвищений (Запуск як адміністратора) підказки.
Ще одне, що слід зазначити, що вам потрібно спочатку включити функцію Hyper-V .
Це розгорнута відповідь: (Ви повинні мати можливість зрозуміти, як вичислити VHD)
HowTo Автоматично монтуйте та налаштовуйте VHD-файли під час завантаження / відключення.
Здається, у Windows 10 щось мало змінилося.
По-перше, я повинен сказати, що я монтую VHD, що зберігається на файловому сервері Linux, і встановлюється над SMB.
По-друге, дуже важливим є те, що якщо ви не від'єднаєте диск при перезавантаженні, тоді, коли ви намагаєтесь його знову приєднати, він говорить: "Файл використовується та не можна отримати доступ" ..
Тому нам потрібно як автоматичне, так і демонтажне. Відключення виявилося трохи хитріше, оскільки я не можу просто помістити його в папку запуску. Ви повинні використовувати групову політику. Крім того, коли запуск як сценарій "вимкнення / запуск", він запускався до початку, його потрібно запустити в "Вхід / Вихід з системи"
У мене 4 файли в C:\mount
mount.cmd
@ECHO OFF
DISKPART /s C:\mount\mount.txt
umount.cmd
@ECHO OFF
DISKPART /s C:\mount\umount.txt
umount.txt
select vdisk file="\\192.168.1.255\Blizzard.vhdx"
detach vdisk
mount.txt
select vdisk file="\\192.168.1.255\Blizzard.vhdx"
attach vdisk
Тепер у запуску введіть / run gpedit.msc
та додайте сценарії для входу / відходу