Windows 10에서 배치 스크립트를 사용하여 VHD를 마운트 해제해야합니다. 온라인에서 찾은 유일한 솔루션은 Windows 7과 Diskpart와 관련이있었습니다. 작업을 수행 할 수있는 다른 기본 Windows 명령 줄 도구가 있습니까?
Windows 10에서 배치 스크립트를 사용하여 VHD를 마운트 해제해야합니다. 온라인에서 찾은 유일한 솔루션은 Windows 7과 Diskpart와 관련이있었습니다. 작업을 수행 할 수있는 다른 기본 Windows 명령 줄 도구가 있습니까?
답변:
MS가 설치 한 명령 줄 도구에만 의존하는 방법을 찾지 못했기 때문에 타사 솔루션을 나열하겠습니다.
WinApiExec
WinApiExec을 사용하면 명령 줄에서 Windows API를 호출 할 수 있습니다. 32 비트 실행 파일은 크기가 3.5KB (x64 : 5.5KB)에 불과하므로 엄청나게 작아서 가능한 적은 오버 헤드가 발생합니다.
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
v 마운트
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
기본 Windows 10 Powershell을 사용하여 vhd / vhdx를 마운트 및 마운트 해제 할 수 있습니다.
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 마운트 방법을 얻을 수 있어야 함)
방법 부팅 / 종료시 VHD 파일을 자동으로 마운트 및 마운트 해제합니다.
Windows 10에서는 상황이 약간 변경된 것 같습니다.
먼저 Linux 파일 서버에 저장된 VHD를 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
이제 시작 유형 / 실행 gpedit.msc
에서 로그온 / 로그 오프 할 스크립트를 추가하십시오.