Как отключить виртуальный жесткий диск с помощью командной строки в Windows 10

Мне нужно отключить виртуальный жесткий диск с помощью пакетного сценария в Windows 10. Единственное решение, которое я нашел в интернете был направлен на Windows 7 и участие Diskpart. Существуют ли другие собственные средства командной строки Windows, которые могут выполнять эту работу?

25
задан Zerobinary99
26.01.2023 6:35 Количество просмотров материала 3388
Распечатать страницу

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
6
отвечен Zerobinary99 2023-01-27 14:23

вы можете подключить и отключить 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 первый.

3
отвечен Anton Krouglov 2023-01-27 16:40

это расширенный ответ: (вы должны быть в состоянии почерпнуть, как 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

enter image description here

1
отвечен FreeSoftwareServers 2023-01-27 18:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

command-line
eject
unmount
vhd
windows-10
Вверх