第一阶段:环境与硬件准备
注意: 在执行任何操作前,请务必先将显示器数据线连接到主板自带的集成显卡接口(iGPU),而不是独立显卡上。这是因为一旦独显被卸载并分配给虚拟机,宿主机将失去该显卡的控制权,如果连接在独显上会导致宿主机黑屏。
# 1. 开启 Hyper-V 虚拟化平台(执行后需重启电脑)
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform -All
# [硬件操作确认]:请确保显示器已插在集显接口上!第二阶段:虚拟机配置
此步骤用于调整虚拟机的底层参数,使其能够承载物理显卡。
$vmName = "WIN11LTSC"
# 必须关闭“保存状态”功能,强制设置为“关机”
Set-VM -Name $vmName -AutomaticStopAction TurnOff
# 开启高速缓存类型控制
Set-VM -GuestControlledCacheTypes $true -VMName $vmName
# 预留内存映射空间 (MMIO)
# 设置 3GB 低位空间和 32GB 高位空间(适配大多数显卡)
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vmName
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vmName第三阶段:宿主机卸载显卡(分配给虚拟机)
此步骤将显卡从宿主机操作系统中剥离,并“移交”给虚拟机。
# 1. 自动获取 NVIDIA 显卡的 PCI 路径
$pnpDevice = Get-PnpDevice -Class Display | Where-Object FriendlyName -like "*NVIDIA*"
$locationPath = ($pnpDevice | Get-PnpDeviceProperty -KeyName "DEVPKEY_Device_LocationPaths").Data[0]
# 2. 在宿主机中禁用该设备(这是卸载前的必要前提)
# 如果不执行此步,后续 Dismount 会报错
Disable-PnpDevice -InstanceId $pnpDevice.InstanceId -Confirm:$false
# 3. 正式从宿主机卸载该设备
Dismount-VmHostAssignableDevice -Force -LocationPath $locationPath
# 4. 将显卡挂载(分配)到虚拟机
Add-VMAssignableDevice -VMName $vmName -LocationPath $locationPath
Write-Host "显卡已成功分配给虚拟机 $vmName" -ForegroundColor Cyan第四阶段:恢复显卡(归还给宿主机)
说明: 如果您是关闭之前的窗口后重新开启的 PowerShell,必须重新定义变量,否则系统不知道要操作哪个虚拟机或哪个设备。
# --- 若重新开启 PowerShell,请先执行下面这两行初始化变量 ---
$vmName = "WIN11LTSC"
# 自动从已分配列表中获取路径,无需手动输入
$locationPath = (Get-VMHostAssignableDevice).LocationPath
# 1. 从虚拟机中移除显卡分配
Remove-VMAssignableDevice -VMName $vmName -LocationPath $locationPath
# 2. 将设备重新挂载回宿主机系统
Mount-VMHostAssignableDevice -LocationPath $locationPath
# 3. 重新启用显卡设备(让宿主机重新识别)
$instanceId = (Get-PnpDevice -Class Display | Where-Object FriendlyName -like "*NVIDIA*").InstanceId
Enable-PnpDevice -InstanceId $instanceId -Confirm:$false
Write-Host "显卡已成功归还给宿主机并重新启用" -ForegroundColor Green原创文章,作者:开心电脑网,如若转载,请注明出处。