Мне нужно отключить виртуальный жесткий диск с помощью пакетного сценария в Windows 10. Единственное решение, которое я нашел в интернете был направлен на Windows 7 и участие Diskpart. Существуют ли другие собственные средства командной строки Windows, которые могут выполнять эту работу?
Как отключить виртуальный жесткий диск с помощью командной строки в Windows 10
3 ответа
так как я не нашел способ полагаться исключительно на MS-установленные инструменты командной строки, я перечислю сторонние решения.
WinApiExec
WinApiExec позволяет пользователю вызывать Windows API из командной строки. 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 поддерживает довольно много ВХД функций. Его размер (x86: 432KB; x64: 2.53 MB) довольно огромен для простого вызова 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 первый.
это расширенный ответ: (вы должны быть в состоянии почерпнуть, как umount VHD)
HowTo автоматическое монтирование и umount VHD-файлов При загрузке / выключении.
вещи, кажется, немного изменились в Windows 10.
во-первых, я должен сказать, что монтирую VHD, хранящийся на файловом сервере Linux, монтируя через SMB.
во-вторых, очень важно, что если вы не отсоединить диск после перезагрузки, то при попытке повторно прикрепить его, он говорит, что "файл используется и не может быть доступен"..
так что нам нужно и automount и unmount. Отключение оказалось немного сложнее, так как я не могу просто положить его в папку автозагрузки. Необходимо использовать групповую политику. Кроме того, при запуске в качестве сценария "shutdown/startup", он побежал рано, вам нужно запустить его в "Logon/Logoff"
у меня 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
теперь в Start type / run gpedit.msc
и добавьте скрипты в logon / logoff
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]