ฉันต้องการเลิกเมานต์ VHD ด้วยสคริปต์แบทช์ใน Windows 10 ทางออกเดียวที่ฉันพบออนไลน์ถูกนำไปที่ Windows 7 และเกี่ยวข้องกับ Diskpart มีเครื่องมือบรรทัดคำสั่งพื้นฐานอื่น ๆ ของ Windows ที่สามารถทำงานได้หรือไม่?
ฉันต้องการเลิกเมานต์ VHD ด้วยสคริปต์แบทช์ใน Windows 10 ทางออกเดียวที่ฉันพบออนไลน์ถูกนำไปที่ 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
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 File Server ซึ่งติดตั้งใน SMB
ข้อที่สองสำคัญมากคือถ้าคุณไม่ถอดดิสก์เมื่อรีบูทจากนั้นเมื่อคุณพยายามแนบไฟล์อีกครั้งจะมีข้อความระบุว่า "ไฟล์ดังกล่าวถูกใช้งานอยู่และไม่สามารถเข้าถึงได้"
ดังนั้นเราจึงต้องการทั้ง automount และ unmount unmount พิสูจน์แล้วว่าเป็นกลอุบายเล็ก ๆ น้อย ๆ เนื่องจากฉันไม่สามารถวางไว้ในโฟลเดอร์เริ่มต้นได้ คุณต้องใช้นโยบายกลุ่ม นอกจากนี้เมื่อเรียกใช้เป็นสคริปต์ "ปิด / เริ่มต้น" มันวิ่งไปก่อนคุณต้องเรียกใช้งานที่ "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
ขณะนี้อยู่ในประเภทเริ่ม / เรียกใช้gpedit.msc
และเพิ่มสคริปต์เพื่อเข้าสู่ระบบ / ออกจากระบบ