1)推荐宿主和客户端同版本系统

2)正常安装hyper-v的虚拟机后,设置中将检查点自动检查点关闭,将动态内存的最小值设置为虚拟机内存值相等

3)powershell管理员模式中执行以下脚本:

#找到自己需要分配的显卡:
Get-VMHostPartitionableGpu


只有一张显卡的时候命令或者需要虚拟的显卡在第一个位置的时候
$vm = "win11"
Add-VMGpuPartitionAdapter -VMName $vm
Set-VMGpuPartitionAdapter -VMName $vm
Set-VM -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 33GB -VMName $vm

需要虚拟的显卡为第二张显卡的时候:
$vm = "win11"
Add-VMGpuPartitionAdapter -VMName $vm -InstancePath $gpu_path #双显卡时候用第二张显卡需要这个命令,path变量为上面查到的显卡name
Set-VMGpuPartitionAdapter -VMName $vm
Set-VM -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 33GB -VMName $vm


如果是多开虚拟机配置显卡资源:
Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000

移除虚拟机内的显卡
$vm = "win11"
Remove-VMGpuPartitionAdapter -VMName $vm #移除虚拟机内的直通显卡,如果新开了ps窗口记得先赋值vm变量

?

5)双击虚拟机vhdx文件,资源管理打开,执行以下操作:
宿主机路径:C:\Windows\System32\DriverStore\FileRepository\
拷贝到路径:C:\Windows\System32\HostDriverStore\FileRepository\(虚拟机系统,需要创建目录,设置everyone权限)
N卡拷贝宿主机文件路径:C:\Windows\System32\nvapi64.dll 至虚拟机相同路径;
A卡所有宿主机,驱动管理器,显卡驱动信息里的文件都必须全部拷贝到虚拟机里(路径和宿主机相同)
运行dxdiag查看显卡是否正常运行

6)虚拟机中运行组策略要设置
计算机配置-管理模板-windows组件-远程桌面服务–远程桌面会话主机-远程会话环境
设置以下内容:
1、将硬件图形适配器应用于所有远程桌面服务会话
2、配置远程桌面连接的H.264/AVC硬件编码
3、为远程桌面连接设置 H.264/AVC 444图形模型的优先级
4、Remote FX数据压缩
5、为远程桌面连接使用WDDM图形显示驱动程序
6、为专门针对windows server 2008 R2 SP1。。。
7、文件夹 RomoteFX for windows server2008.下面的三个都启动

7)解除30帧显示,虚拟机其中运行注册表:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
“DWMFRAMEINTERVAL”=dword:0000000f

经过上述设置中,虚拟机中的显卡就可以实现虚拟化,不过测试下来,intel核显的性能并不强劲,虚拟机中帧数大概也就20帧左右。不如独立显卡。