ข้อเสียที่สำคัญของ Hyper-V เทียบกับ Hypervisors อื่นๆ (เช่น VMWare ESXi หรือ Proxmox) คือขาดฟีเจอร์การ Redirect อุปกรณ์ USB จากโฮสต์ไปยัง Virtual Machines ตั้งแต่ Hyper-V 2012 R2 มีการเปลี่ยนแปลงจำนวนมากเกี่ยวกับตัวเลือก USB Passthrough แต่ฟังก์ชันนี้ยังตกหลังคู่แข่ง ในบทความนี้ เราจะพูดถึงรายละเอียดของ USB Redirection ใน Hyper-V
ภาพรวม Hyper-V USB Passthrough
USB Passthrough หมายถึงความสามารถในการ Redirect อุปกรณ์ USB จาก Host Hypervisor (หรือผ่านเครือข่ายจากเซิร์ฟเวอร์/อุปกรณ์อื่น) ไปยัง Virtual Machine โดยใช้ USB Passthrough คุณสามารถ Redirect USB Stick, Token, USB Dongle, Modem หรืออุปกรณ์อื่นๆ ที่เชื่อมต่อกับพอร์ต USB ของ Physical Host ไปยัง Virtual Machine ได้
ข่าวร้ายคือ Hyper-V ไม่รองรับ USB Passthrough แบบเต็มรูปแบบ คุณไม่สามารถ Redirect อุปกรณ์ USB แบบสุ่มจาก Physical Host ไปยัง Virtual Machine ได้ (VMWare ดีกว่านี้มาก — ดูบทความ USB Passthrough ใน VMWare ESXi) มีตัวเลือกในตัวหลายอย่างสำหรับการใช้อุปกรณ์ USB ภายนอกใน Hyper-V VM แต่ทุกอย่างมีข้อจำกัดที่สำคัญ ปัจจุบันคุณสามารถใช้วิธีต่อไปนี้เพื่อ Redirect อุปกรณ์ USB ไปยัง Hyper-V Virtual Machine
- การ Redirect USB Drives จาก Hyper-V Host;
- Enhanced Session Mode บน Hyper-V Console;
- USB Redirection ผ่าน RDP;
- การใช้โซลูชันซอฟต์แวร์/ฮาร์ดแวร์สำหรับ USB Redirecting ผ่านเครือข่าย (USB over IP)
สถานการณ์สุดท้ายนี้เกี่ยวข้องกับการใช้โซลูชันของบุคคลที่สามเพื่อนำ USB over IP ไปปฏิบัติจริง อาจเป็น Network USB Hub โซลูชันซอฟต์แวร์เพื่อ Redirect อุปกรณ์ USB ผ่านเครือข่าย TCP/IP จากเซิร์ฟเวอร์อื่น โซลูชันเชิงพาณิชย์ยอดนิยมส่วนใหญ่เป็นแบบชำระเงิน (AnywhereUSB, DigiUSB) ฟรีมี VirtualHere USB (ฟรีสำหรับ USB Dongle หนึ่งตัวและ Target Server หนึ่งเครื่อง) และโปรเจกต์โอเพนซอร์สที่ค่อนข้างเก่า usbip.sourceforge.net (ส่วนเซิร์ฟเวอร์ทำงานบน Linux ไคลเอ็นต์สามารถติดตั้งบน Windows)
การเข้าถึง USB Hard Drive จาก Hyper-V Virtual Machine
คุณสามารถ Redirect USB Drive ที่ต่ออยู่กับ Host เข้าไปใน Hyper-V Virtual Machine ที่กำลังทำงานได้อย่างง่ายดาย มาดูวิธีให้ Hyper-V Virtual Machine เข้าถึง USB Drive ของ Host โดยตรง
หมายเหตุ
- คู่มือนี้ทำงานเฉพาะกับ USB Drives ที่ระบบตรวจจับเป็น Fixed คุณไม่สามารถ Redirect USB Flash Drives, Smart Cards และอุปกรณ์ที่ถอดได้อื่นๆ แบบนี้ได้ (แม้จะมี טריקเล็กน้อยที่ทำให้ Windows มองอุปกรณ์ถอดได้เป็น Fixed Hard Drive)
- สำหรับ Drives เหล่านี้ คุณไม่สามารถสร้าง Snapshot/Checkpoint ได้
- เชื่อมต่อ External USB Drive กับ Hyper-V Host (อาจเป็น Host ใดๆ ที่มี Windows และติดตั้งบทบาท Hyper-V หรือ Free Microsoft Hyper-V Server) Drive จะปรากฏในระบบและตัวอักษรไดรฟ์จะถูกมอบหมายให้ (หากไม่ได้มอบหมายตัวอักษรไดรฟ์ ให้ตรวจสอบบทความ);
- เปิดคอนโซล Disk Management (
diskmgmt.msc) คลิกขวาที่ Drive (ในตัวอย่างของเรา ID ของ USB Drive 20 GB คือ Disk 1) และเลือก Offline
หากคุณใช้ Windows Server Core หรือ Hyper-V Server ซึ่งไม่มีบาง MMC Snap-ins แบบกราฟิก คุณสามารถจัดการดิสก์ท้องถิ่นโดยใช้โมดูล Disk Management PowerShell คำสั่งต่อไปนี้สามารถแสดงรายการ Physical Disks บน Host และตั้งค่า Disk ที่ระบุให้ Offline:
Get-Disk
Get-Disk -Number 1 |Set-Disk -IsOffline:$true

- รัน Hyper-V Manager และเปิด Properties ของ Virtual Machine ที่ต้องการเชื่อม USB Drive ในส่วน SCSI Controller ให้เพิ่ม Disk ใหม่ ระบุว่าเป็น Physical (Physical hard disk) ในเมนูแบบเลื่อนลงเลือก USB Drive ของคุณ (จะมีลักษณะประมาณนี้: Disk 1 20.00 Gb Bus 0 Lun 0 Target 1) หมายเหตุ คุณไม่ต้องปิด Virtual Machine เพื่อเพิ่ม SCSI Hard Drive สำหรับอุปกรณ์ SCSI รองรับ Hot-Add และ Hot-Remove Drives

- ตอนนี้เราจะแสดงวิธีเข้าถึง USB Disk บน Hyper-V Host จาก Guest OS ของ Virtual Machine ที่รัน Windows เปิดคอนโซล Virtual Machine หรือเชื่อมต่อผ่าน RDP ล็อกอินเข้าสู่ Guest OS รัน Disk Manager OS ควรเห็น Drive ใหม่ หากมัน Offline ให้คลิกขวาและเลือก Online ในขณะนี้ ไม่มีตัวอักษรไดรฟ์หรือ Mount Points ถูกมอบหมายให้พาร์ติชันบน USB Disk เพื่อแก้ไข ให้คลิกขวาที่พาร์ติชันบนดิสก์และเลือก "Change Drive Letter and Paths" จากเมนูบริบท มอบหมายตัวอักษรไดรฟ์ว่างใดๆ ให้กับพาร์ติชัน หรือระบุ Mount Point

นั่นคือทั้งหมด! คุณได้เชื่อม External USB Media เข้าไปใน Hyper-V Virtual Machine โดยตรงแล้ว และตอนนี้สามารถใช้งานได้
สำคัญ เพื่อป้องกันการสูญเสียข้อมูล ก่อนที่คุณจะถอด Hard Disk ออกจากพอร์ต USB ตรวจสอบให้แน่ใจว่าไม่มีแอปพลิเคชันใน Virtual Machine เข้าถึงดิสก์นี้
เพื่อถอด USB Drive อย่างปลอดภ คุณสามารถเปิดคอนโซล Hyper-V Manager และไปที่หน้าต่างการตั้งค่า Virtual Machine ในส่วน SCSI Controller ให้เลือก Hard Drive ที่คุณต้องการถอดและคลิก Remove บันทึกการเปลี่ยนแปลง หลังจากนั้น คุณสามารถถอด Hard Disk ออกจากพอร์ต USB ของ Hyper-V Host ได้ทางกายภาพ
Redirect USB Device ไปยัง VM ด้วย Hyper-V Enhanced Session Mode
ในเวอร์ชันของ Hyper-V ที่นำมารวมใน Windows Server 2012 R2/8.1 อุปกรณ์ USB ใดๆ สามารถ Forward ไปยัง Virtual Machine จาก Client Computer โดยใช้ Enhanced Session Mode (ESM) เครื่องมือ Hyper-V Manager vmconnect.exe ถูกใช้เพื่อเชื่อมต่อ มันอนุญาตให้คุณเชื่อมต่อกับคอนโซล Virtual Machine และเลือกอุปกรณ์ USB ที่คุณต้องการ Redirect
ขั้นแรก คุณต้องเปิดใช้งาน Enhanced Session Mode ในการตั้งค่า Hyper-V Server สามารถทำได้โดยใช้ PowerShell:
Set-VMHost -EnableEnhancedSessionMode $true
หรือใน Hyper-V Settings -> Enhanced Session Mode

รีสตาร์ทบริการ Hyper-V Virtual Machine Management:
Get-Service vmms | Restart-Service
ในส่วน Integration Services ของการตั้งค่า VM คุณต้องเปิดใช้งานตัวเลือก Guest Services
เพื่อ Redirect อุปกรณ์ USB ผ่าน Enhanced Session Mode คุณต้องเปิดคอนโซล Hyper-V เลือก Virtual Machine และคลิกปุ่ม Connect หรือคุณสามารถรันเครื่องมือ vmconnect.exe (Virtual Machine Connection) ระบุ Hyper-V Server และชื่อ Virtual Machine เครื่องมือ vmconnect รองรับตัวเลือกบรรทัดคำสั่งบางอย่าง ดังนั้นคุณสามารถให้ไฟล์ bat ที่ปรับแต่งกับตัวเลือกที่คุณต้องการแก่ผู้ใช้

หาก VM รองรับ Enhanced Session Mode หน้าต่างที่คล้ายกับคุณสมบัติการเชื่อมต่อ RDP จะปรากฏ คลิก Show Option -> Local Resources -> Local device and resources -> More

เลือกอุปกรณ์ USB บนคอมพิวเตอร์ของคุณที่จะ Redirect ไปยัง VM หากอุปกรณ์ที่คุณต้องการไม่ได้เชื่อมต่ออยู่ ให้เลือก "Other supported Plug and Play (PnP) devices" และ "Devices that I plug in later options"

ตอนนี้ อุปกรณ์ USB ทั้งหมดที่เชื่อมต่อกับคอมพิวเตอร์ของคุณจะพร้อมใช้งานในเซสชันคอนโซลของ Hyper-V Virtual Machine โดยอัตโนมัติ
คุณสมบัติหลักและข้อจำกัดของ Hyper-V Enhanced Session Mode:
- รองรับเฉพาะ Windows เป็น Guest OS (เริ่มจาก Windows 8.1 / Windows Server 2012 R2);
- คุณไม่ต้องการการเข้าถึงเครือข่ายโดยตรงไปยัง Virtual Machine การเชื่อมต่อทั้งหมดทำผ่าน Hyper-V Host (คุณเชื่อมต่อกับมันผ่านเครือข่ายผ่าน TCP Port 2179) และ Hyper-V เชื่อมต่อกับ VM ผ่าน VMBus;
- Hyper-V Manager ต้องติดตั้งบนคอมพิวเตอร์ของ Client
วิธีนี้คล้ายกับการ Redirect อุปกรณ์ USB จาก Local Host ผ่าน RDP Session เราจะไม่พิจารณารายละเอียดเพิ่มเติม 
หากคุณ Redirect อุปกรณ์ USB ผ่านเครือข่าย (USB over IP หรือผ่าน RDP Session) คุณยังคงสามารถเข้าถึง USB Key ได้แม้หลังจากย้าย Virtual Machine ไปยัง Host อื่น (Hyper-V Live Migration / vMotion)