首先吐个槽:
微软的 Hyper-V 管理工具做得简直太烂了,竟不支持配置SR-IOV硬件直通,必须全部通过 PowerShell 指令才能实现;
今天做实验,需要将 win10 台式机上的 PCIe 无线网卡直通给 Kali Linux 虚拟机使用,查了各种文档资料,总算折腾成功了,也遇到了各种问题,这里记录一下整个配置过程,作为备忘!
配置方法
1. 获取虚拟机名称
Get-VM
2. 配置虚拟机解除DDA限制
Set-VM -VMName kali-linux-2025.3-hyperv-amd64 -AutomaticStopAction TurnOff
3. 优化虚拟机直通性能配置
#启用CPU的合并写入
set-vm -GuestControlledCacheTypes $true -Name kali-linux-2025.3-hyperv-amd64
#配置32位内存映射IO (MMIO)空间
set-vm -LowMemoryMappedIoSpace 3Gb -Name kali-linux-2025.3-hyperv-amd64
#配置大于32位的内存映射 MMIO 空间
set-vm -HighMemoryMappedIoSpace 33280Mb -VMName kali-linux-2025.3-hyperv-amd64
4. 查看要直通的设备路径
在宿主机的设备管理器中,查看并记录需要直通给虚拟机的设备路径信息
5. 宿主机卸载需要直通的设备
可以通过设备管理器卸载
也可以通过如下 PowerShell 指令强制卸载
Dismount-VMHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(1B00)#PCI(0000)"
#如果有警告就加上 --force 参数强制卸载
Dismount-VMHostAssignableDevice -Force -LocationPath "PCIROOT(0)#PCI(1B00)#PCI(0000)"
6. 分配设备给虚拟机
指定设备路径与虚拟机名称,将设备分配给虚拟机可访问
#分配设备给虚拟机
Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(1B00)#PCI(0000)" -VMName kali-linux-2025.3-hyperv-amd64注意:此时如果指令执行报错,提示无法为虚拟机添加资源;请确认第 2 步的指令是否有执行成功,或漏掉了!
成功执行第 2 步的(Set-VM -AutomaticStopAction TurnOff)指令后再分配设备就不会报错了。
7. 虚拟机无法开机
此时直通设备给虚拟机的配置都完成了,但此时启动虚拟机会报错,虚拟机无法开机启动,
提示
无法打开电源,因为发生错误“虚拟机监控程序功能对于该用户来说不可用。” (0xC035001E)

这是由于宿主机的安全性限制导致的,需要开启宿主机的 hypervisoriommupolicy特性,才能确保系统正确地映射内存地址,提供增强的虚拟化安全特性,以此才能支持 Hyper-V 的运行。
#开启后需要重启宿主机系统才能生效
bcdedit.exe /set hypervisoriommupolicy enable