ตั้งแต่ Windows 7 และ Windows Server 2008 R2 ผู้ใช้สามารถสร้างและมาวงค์ไฟล์ ฮาร์ดดิสก์เสมือน (VHD/VHDX) ได้โดยตรงจากคอนโซล Disk Management ไฟล์ดิสก์เสมือนเหล่านี้จะแสดงเหมือนดิสก์ฟิสิกส์แยกต่างหากในระบบ และสามารถใช้เก็บข้อมูลได้ทุกประเภท ข้อจำกัดสำคัญคือ ต้องมาวงค์ไฟล์ VHD/VHDX ด้วยตนเองทุกครั้งที่รีบูต Windows นอกจากนี้ เฉพาะ Administrator เท่านั้นที่มีสิทธิ์มาวงค์ VHD/VHDX ผู้ใช้ทั่วไปไม่มีสิทธิ์นี้ (ต้องขอ Admin มาช่วยมาวงค์)
บทความนี้จะแสดงวิธีการมาวงค์ไฟล์ vhd/vhdx อัตโนมัติตอน Windows เริ่มทำงาน เพื่อให้ดิสก์เสมือนพร้อมใช้งานสำหรับผู้ใช้ที่ไม่ใช่ Admin
Windows ไม่มีฟีเจอร์บิลด์อินสำหรับออโตโมาท์การมาวงค์ vhd ตอนรีบูต เราจะใช้ diskpart และ Windows Task Scheduler เพื่อทำให้เกิดขึ้น
สร้างสคริปต์ Diskpart
สร้างไฟล์ข้อความใหม่ (เช่น C:\Scripts\attach_vhdx.txt) ใส่โค้ดดังนี้:
select vdisk file="C:\vhd2\w10vhd.vhdx"
attach vdisk
select part 1
assign letter=K
exit
- C:\vhd2\w10vhd.vhdx — พาธเต็มไปยังไฟล์ภาพดิสก์ VHD หรือ VHDX
- K — ตัวอักษรไดรฟ์ที่ต้องการกำหนดให้ VHD image
สคริปต์นี้จะมาวงค์ vhdx ที่ระบุ เลือกพาร์ติชันแรกบนดิสก์ และกำหนดตัวอักษรไดรฟ์ หากมีหลายพาร์ติชัน ให้ปรับโค้ดโดยระบุนомерพาร์ติชันที่ต้องการมาวงค์
หมายเหตุ เพื่อความปลอดภัย ควรเปลี่ยนสิทธิ์ NTFS ของไฟล์ C:\Scripts\attach_vhdx.txt ให้ผู้ใช้ไม่สามารถแก้ไขไฟล์นี้ได้
สร้างงานใน Task Scheduler
เปิด Windows Task Scheduler (Taskschd.msc) และสร้างงานใหม่ (Actions → Create Task) ตั้งค่าดังนี้:
แท็บ General:
- ระบุชื่องาน (Name):
automountvhdx - ติ๊ก Run whether user is logged on or not
- ติ๊ก Run with highest privileges
แท็บ Triggers:
- เพิ่ม Trigger ใหม่ เลือก At Startup ด้วยการตั้งค่าเริ่มต้น
แท็บ Actions:
- สร้าง Action ใหม่ (New)
- Action: Start a program
- Program/script: diskpart
- Arguments: /s "C:\Scripts\attach_vhdx.txt"
แท็บ Conditions:
- เอาติ๊ก Start the task only if the computer is on AC power ออก
บันทึกการเปลี่ยนแปลง ระบบจะขอข้อมูลบัญชีผู้ใช้ (username/password) ที่จะรันงานนี้ (บัญชีนี้ต้องมีสิทธิ์ Admin)
เพื่อรันงานในฐานะ SYSTEM ให้เปิด Properties ของงานอีกครั้ง ที่แท็บ General คลิก Change User or Group พิมพ์ system และบันทึก
สามารถสร้าง Scheduled Task ด้วย PowerShell หรือ schtasks ได้:
schtasks /create /tn "automountvhdx" /tr "diskpart.exe /s 'c:\Scripts\attach_vhdx.txt'" /sc ONLOGON /ru SYSTEM
ตอน Windows เริ่มต้นครั้งถัดไป VHDx disk ที่ระบุจะถูกมาวงค์อัตโนมัติ โดยทั่วไปไดรฟ์จะปรากฏในรายการดิสก์ที่ใช้ได้ภายใน 30-60 วินาทีหลัง Windows เริ่มต้น
มาวงค์ VHDX ไปยังโฟลเดอร์แทนตัวอักษรไดรฟ์
หากต้องการมาวงค์ vhdx image ไปที่โฟลเดอร์แทนที่จะเป็นไดรฟ์แยก ให้เปลี่ยนโค้ดใน c:\Scripts\attach_vhdx.txt เป็น:
select vdisk file="C:\vhd2\w10vhd.vhdx"
attach vdisk
select part 1
assign mount="c:\mount"
exit
ผลลัพธ์คือ ดิสก์เสมือนจะถูกมาวงค์ในไดเรกทอรีแยกบนดิสก์ฟิสิกส์ (ในไดเรกทอรีนี้จะแสดงเนื้อหาของไฟล์ vhdx)
มาวงค์ VHD จาก Network Share (UNC Path)
สามารถมาวงค์ดิสก์จากโฟลเดอร์แชร์เครือข่ายได้โดยใช้ UNC path:
select vdisk file="\\srv1\share\win10shared.vhdx"
ทดสอบสคริปต์ Auto-mount โดยไม่ต้องรีบูต
รันคำสั่งต่อไปนี้ในฐานะ Administrator:
diskpart /s c:\Scripts\attach_vhdx.txt
หากโค้ดไม่มีข้อผิดพลาด คำสั่งจะเชื่อมต่อไฟล์ vhdx และไดรฟ์ใหม่จะปรากฏในระบบ
วิธีการออโตโมาท์ดิสก์เสมือนเหล่านี้ใช้ได้กับ Windows 10, Windows 8.1 และ Windows 7
วิธีทางเลือก: ใช้ PowerShell มาวงค์ VHDX ตอนเริ่มต้น
หากชอบ PowerShell สามารถมาวงค์ VHDX อัตโนมัติตอนเริ่มต้นด้วยสคริปต์นี้:
mount-vhd -path C:\vhd\win10vhd.vhdx –PassThru | Get-Disk | Get-Partition | Set-Partition -NewDriveLetter G