周行文 2026-02-14 11:40 采纳率: 98.4%
浏览 1
已采纳

Windows 10中如何彻底终止残留的VMware后台进程?

在Windows 10中关闭VMware Workstation或Player后,常发现`vmware-tray.exe`、`vmware-authd.exe`、`vmware-usbarbitrator64.exe`及多个`vmware-*.exe`进程仍驻留后台,导致CPU/内存占用异常、USB设备无法释放、甚至影响Hyper-V启用。手动通过任务管理器结束进程后,部分服务(如VMware NAT Service、VMware DHCP Service)可能自动重启;更隐蔽的是,VMware Host Agent(`vmware-hostd.exe`)常以LocalSystem身份持续运行,且其子进程受Windows服务依赖关系保护。此外,旧版VMware残留的WMI提供程序或未卸载干净的虚拟网卡(VMnet1/VMnet8)也可能触发后台活动。用户尝试禁用相关服务后,重启仍自动恢复——这通常源于VMware安装时注册的延迟启动策略或组策略干预。如何在不重装的前提下,安全、彻底、一劳永逸地清理所有VMware后台痕迹?
  • 写回答

1条回答 默认 最新

  • 时维教育顾老师 2026-02-14 11:40
    关注
    ```html

    一、现象识别:从进程残留到系统级干扰

    关闭 VMware Workstation/Player 后,vmware-tray.exe(托盘守护)、vmware-authd.exe(授权服务)、vmware-usbarbitrator64.exe(USB 设备仲裁)等进程持续驻留,常伴随 CPU 占用率 5–15%、内存泄漏(>300MB)、USB 设备“正在使用中”提示,以及 Hyper-V 启用失败(错误代码 0x80070057)。任务管理器强制结束仅治标,因 Windows 服务依赖链与 Session 0 隔离机制导致子进程自动复活。

    二、根源剖析:四层嵌套式驻留机制

    • 服务层:VMware NAT Service、DHCP Service、Hostd Service(vmware-hostd.exe)注册为 Automatic (Delayed Start),且 VMwareHostd 服务被设为 DependOnService 依赖项,受 VMUSBArbVMnetDHCP 反向保护;
    • 会话层:Tray 进程以当前用户 Session 启动,但通过 ShellExecuteEx 调用 LocalSystem 服务,形成跨会话持久化;
    • 驱动与网络层:虚拟网卡 VMnet1(Host-only)和 VMnet8(NAT)绑定 vmnet.sysvsock.sys 等内核驱动,未卸载时触发 WMI 提供程序(VMware.WmiProvider)轮询;
    • 策略层:安装器写入 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Settings 的组策略残留,或通过 schtasks /create 注册的延迟启动计划任务(如 VMware USB Arbitrator Startup)。

    三、诊断清单:精准定位残留组件

    检测维度命令/工具预期输出特征
    服务状态sc queryex type= service state= all | findstr -i "vmware"显示 STATE: 4 RUNNINGSTATE: 1 STOPPEDSTART_TYPE: 0x2 AUTO_START
    驱动加载driverquery /v | findstr -i "vmnet\|vsock\|vmci"返回 Running 状态且 Start ModeSystem
    WMI 提供程序Get-WmiObject -Namespace root\VMware -Class __ProviderRegistration | Select Name非空结果即存在残留 WMI 命名空间

    四、分阶段清理方案(安全、可逆、幂等)

    1. 阶段一:服务冻结与依赖剥离
      执行:sc config "VMwareHostd" start= disabled && sc config "VMwareUSBArb" start= disabled && sc stop "VMwareHostd"
      关键操作:使用 sc enumdepend "VMwareHostd" 查依赖,再对 VMnetDHCPVMnetNAT 重复禁用;
    2. 阶段二:驱动卸载与网络重置
      进入设备管理器 → “查看” → “显示隐藏设备” → 展开“网络适配器”,右键卸载 VMnet1VMnet8 并勾选“删除此设备的驱动程序软件”;
      终端执行:pnputil /enum-drivers | findstr -i "vmware" && pnputil /delete-driver oem*.inf /uninstall
    3. 阶段三:WMI 与计划任务清除
      PowerShell 管理员模式运行:
      Remove-WmiNamespace -Namespace "root\VMware" -Recurse -Force
      Get-ScheduledTask | Where-Object {$_.TaskName -match "VMware"} | Unregister-ScheduledTask -Confirm:$false

    五、终极防护:注册表与组策略深度清理

    以下注册表路径需手动验证后删除(建议先导出备份):

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VM*(全部 VMware 开头服务项)
    • HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc. 及其子键
    • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\VMware(若存在)
    • HKEY_CLASSES_ROOT\CLSID\{...}\InprocServer32 中指向 vmware-wmid.dll 的项

    组策略检查:gpedit.msc → 计算机配置 → 管理模板 → 系统 → 登录 → “在用户登录时运行这些程序”,确认无 VMware 相关条目。

    六、验证与自检流程图

    graph TD A[重启系统] --> B{sc query VMwareHostd
    返回 STATE: 1} B -->|是| C[进程列表无 vmware-*.exe] B -->|否| D[检查服务启动类型是否为 disabled] C --> E{netsh interface show interface
    无 VMnet1/VMnet8} E -->|是| F[Hyper-V 启用成功?] E -->|否| G[重新执行驱动卸载步骤] F -->|是| H[✅ 清理完成] F -->|否| I[检查 BIOS 中 VT-x/AMD-V 是否启用且 Hyper-V 未被第三方禁用]

    七、防复发机制:自动化清理脚本(PowerShell)

    将以下脚本保存为 VMware-Cleaner.ps1,以管理员身份运行(含错误捕获与日志):

    $LogPath = "$env:TEMP\VMwareCleaner_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"
    "=== Start at $(Get-Date) ===" | Out-File $LogPath
    $Services = "VMwareHostd","VMwareUSBArb","VMnetDHCP","VMnetNAT","VMwareAuthd"
    $Services | ForEach-Object {
      if (Get-Service $_ -ErrorAction SilentlyContinue) {
        sc.exe config "$_" start= disabled 2>&1 | Out-File $LogPath -Append
        sc.exe stop "$_" 2>&1 | Out-File $LogPath -Append
      }
    }
    "Cleanup completed. Log: $LogPath" | Out-File $LogPath -Append
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 2月15日
  • 创建了问题 2月14日