前提:用“管理员 PowerShell”执行。
适用症状:设备管理器里 NVIDIA 显卡掉成“视频控制器(VGA 兼容)”,驱动能匹配但始终装不上。
1. 查显卡实例 ID
Get-PnpDevice | Where-Object {
$_.FriendlyName -match 'NVIDIA|GeForce|RTX|GTX|Quadro' -or $_.InstanceId -match 'VEN_10DE'
} | Select-Object Status,Class,FriendlyName,InstanceId,Problem,Present | Format-List
本机实际实例 ID:
$gpu = 'PCI\VEN_10DE&DEV_21C4&SUBSYS_140A7377&REV_A1\4&2AE1B128&0&0019'
2. 确认系统已存在匹配驱动
pnputil /enum-devices /instanceid "$gpu" /drivers
如果输出里能看到 oem86.inf / nv_dispig.inf / NVIDIA,说明驱动包已在系统里。
3. 删除卡住安装的旧服务
sc stop NVDisplay.ContainerLocalSystem
sc delete NVDisplay.ContainerLocalSystem
确认已删掉:
sc query NVDisplay.ContainerLocalSystem
如果返回 1060,表示服务已不存在,正常。
4. 强制重装设备节点
pnputil /remove-device "$gpu"
Start-Sleep -Seconds 2
pnputil /scan-devices
Start-Sleep -Seconds 6
5. 验证修复结果
Get-PnpDevice | Where-Object { $_.InstanceId -eq $gpu } |
Select-Object Status,Class,FriendlyName,InstanceId,Problem,Present | Format-List
Get-CimInstance Win32_VideoController |
Select-Object Name,PNPDeviceID,DriverVersion,DriverDate,Status,VideoProcessor | Format-List
sc query NVDisplay.ContainerLocalSystem
成功标准
FriendlyName : NVIDIA GeForce GTX 1660 SUPER
Status : OK
Problem : CM_PROB_NONE
DriverVersion: 32.0.15.9186
6. 重启
shutdown /r /t 5
7. 如果还要继续排查,再看这两个点
pnputil /enum-devices /instanceid "$gpu" /properties
Select-String -Path 'C:\Windows\INF\setupapi.dev.log' -Pattern 'NVDisplay.ContainerLocalSystem|Access is denied|0x00000005' -Context 3,8
这次最终生效的关键步骤就是两步:
sc delete NVDisplay.ContainerLocalSystem
pnputil /remove-device "$gpu"
pnputil /scan-devices