VMware卸载不干净导致安装失败?注册表彻底清理实战指南
前阵子帮朋友处理了一台 Win10 台式机问题听起来很简单他之前装的是 VMware Workstation 12后来想换版本就正常从“控制面板-程序和功能”里卸载了。结果再重新安装时安装程序每次跑到一半就回滚要么直接报错“安装程序在安装 VMware Workstation 之前已结束”要么装完以后打不开虚拟机设备管理器里虚拟网卡挂着黄色感叹号提示“由于其配置信息(注册表中的)不完整或已损坏Windows 无法启动这个硬件设备。(代码 19)”。折腾了两天最后定位到根因就是卸载不干净、注册表里残留了大量 VMware 相关条目。这类问题在 win10 vmware12 的组合下太常见了网上说法零散大多只告诉你“删注册表”却不说清删哪些、按什么顺序删、删完还要做什么。这篇文章把我这次排错、清理、重装的全过程完整梳理一遍包括每一步的关键原因和注意事项。无论你是普通使用者还是帮同事救场的“IT 救火队员”照着这套流程走基本能解决 VMware 卸载不干净导致的反复安装失败。1. 问题现象与根因分析1.1 最常见的三种失败现象先对号入座看看你遇到的是不是下面这三种情况之一。第一种是安装过程中直接回滚。安装程序进度条走到 80% 左右突然弹出一个错误框内容大概是“安装程序在安装 VMware Workstation 之前已结束因为出现错误”然后整个界面消失。这时候点“完成”没有任何作用系统里既没有装上 VMware也没有任何快捷方式生成。第二种是安装看似成功但服务起不来。装完以后打开 VMware提示“VMware Authorization Service 没有运行”或者“服务特定错误 0”。去服务管理器里看VMware 的几个服务状态都是“停止”点击“启动”会报错错误代码可能是 1058、1068 或 1053总之就是服务无法正常启动。第三种是虚拟网卡异常。装完以后物理机“网络连接”里看不到 VMware Virtual Ethernet Adapter或者在设备管理器的网络适配器里能看到但图标带黄色感叹号。点开属性典型提示就是那句“由于其配置信息(注册表中的)不完整或已损坏Windows 无法启动这个硬件设备。 (代码 19)”。这种问题即使 VMware 主程序能打开虚拟机里的网络也是不通的NAT 和桥接都白搭。1.2 为什么根因是注册表残留而不是安装包问题很多人第一反应是重新下载安装包但换了好几个版本依然失败。原因在于Windows 在安装软件时不仅会写入文件还会在注册表里记录大量“产品状态信息”。VMware 12 在 Win10 下安装卸载后主要会在以下四个层面留下痕迹。第一个层面是 Windows Installer 产品数据库。注册表里的HKLM\SOFTWARE\Classes\Installer\Products会记录已经安装过的 MSI 产品信息。如果卸载不彻底数据库里还留着一条“VMware Workstation 已安装”的记录新安装程序在启动检测时误以为系统里已经存在旧版本于是拒绝覆盖或升级直接回滚。第二个层面是服务项。VMware 会注册自己的 Windows 服务比如 VMware Authorization Service、VMnetDHCP、VMware NAT Service、VMware USB Arbitration Service。这些服务项在卸载时如果没有被正常删除会一直指向已经不存在的程序路径。新安装程序发现这些“残留服务”存在于注册表中要么认为产品没卸干净要么在覆盖安装时写入冲突导致安装失败。第三个层面是驱动与设备枚举。VMware 12 会安装虚拟网卡驱动、USB 仲裁驱动等。这些驱动如果有文件残留或者注册表ControlSet\Control\Class下面还挂着对应的设备配置就会出现设备管理器里的“代码 19”错误。第四个层面是用户级配置。HKCU\Software\VMware, Inc.和%AppData%\VMware里存着用户偏好、许可证信息、缓存数据。虽然这些不直接导致安装失败但会影响新版本的行为甚至让安装程序读取到非法的配置信息。所以说彻底清理注册表本质上是把系统恢复到“从未安装过 VMware”的状态这样才能让新安装包干净落地。1.3 卸载时机与卸载方式的坑这次帮朋友排查时我特意问了他卸载过程。他说就是控制面板里点卸载然后重启了一次。问题恰恰出在“没有及时重启”和“卸载时没有勾选删除虚拟网络适配器”上。VMware 官方卸载程序在卸载时会提示是否同时移除虚拟网络适配器如果当时没勾选或者卸载完成后没有立即重启虚拟网卡和部分驱动就会留在系统里。另外一个常见坑是很多人卸载前没有退出 VMware 托盘图标导致部分 DLL 被占用卸载程序只能跳过这些文件留下大量残骸。后来我查阅他系统里的日志发现崩溃点就是在写网卡驱动配置时发生的。这提醒我们清理注册表之前必须先确保所有 VMware 相关服务和进程已经关闭否则后续删除文件时会出现“文件被占用”的提示注册表项也可能因句柄占用而无法删除。2. 动手清理前必须做的准备2.1 备份注册表和创建还原点任何注册表操作都有风险尤其是删 VMware 相关键时有可能手滑删到系统关键键值。所以开工之前先做两件事。第一创建系统还原点。在 Win10 搜索框输入“创建还原点”回车打开“系统保护”选项卡选择系统盘点击“创建”输入一个描述性名称比如“清理VMware残留前”。创建好之后后面如果操作失误还能通过安全模式下的系统还原退回去。第二备份注册表。打开注册表编辑器选中“计算机”根节点右键“导出”保存为一个 .reg 文件。这个备份文件比较大但真实必要。如果只是针对 VMware 相关分支也可以先展开到具体位置分别导出备份。例如导出HKLM\SOFTWARE\VMware, Inc.导出HKLM\SYSTEM\CurrentControlSet\Services\VMnetDHCP导出HKCU\Software\VMware, Inc.这样出问题后能精准恢复。2.2 停止 VMware 服务与进程打开“服务”管理器WinR 输入 services.msc把所有显示名称带 VMware 的服务都手动停止包括 VMware Authorization Service、VMware DHCP Service、VMware NAT Service、VMware USB Arbitration Service。服务停止后再打开任务管理器结束所有与 vmware、vmnet、vmnat、vmnetdhcp、vmtray 相关的进程。如果进程无法结束可能有子进程在运行可以在命令行里执行taskkill /F /IM vmware.exe taskkill /F /IM vmnat.exe taskkill /F /IM vmnetdhcp.exe taskkill /F /IM vmtray.exe2.3 判断是否需要进入安全模式常规模式下删除部分注册表项或文件时可能会提示“无法删除”尤其是服务相关键值即使管理员权限也会因为系统服务控制管理器锁定而失败。遇到这种情况最简单的办法是重启进入安全模式。Win10 进入安全模式的方法按住 Shift 键点击开始菜单的“重启”进入恢复环境后选择“疑难解答-高级选项-启动设置-重启”然后按数字键 4 进入安全模式。在安全模式下没有多余的第三方服务干扰删除 VMware 服务项和驱动文件会轻松很多。2.4 准备工具清单手动清理其实只需要系统自带的工具注册表编辑器 regedit.exe命令行 cmd.exe管理员服务管理器 services.msc设备管理器 devmgmt.msc磁盘清理或文件资源管理器不建议一上来就使用第三方“注册表清理大师”这类工具扫描逻辑比较机械容易误删系统关键索引。更推荐先手动清理再用工具扫描一遍作为辅助。3. 注册表专项清理从 HKLM 到 HKCU 一次清干净3.1 删除 SOFTWARE 分支下的 VMware 公司项打开 regedit.exe依次检查下面这些位置把带 VMware 字样的键删掉HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\VMware, Inc. HKEY_CURRENT_USER\Software\VMware, Inc.第一个分支是 64 位程序写入的位置第二个分支是 32 位程序在 64 位系统上写入的位置。VMware 12 的安装程序本身可能是 32 位的所以很多时候真正的残留藏在 WOW6432Node 下面这也是许多教程只提到第一处却清理不干净的原因。删除时如果提示“无法删除”多半是权限问题。右键该键选择“权限-高级”把所有者改成当前管理员账户勾选“替换子容器和对象的所有者”之后再把权限改为完全控制再回来删除。详细操作我会在常见问题部分再展开。3.2 服务项清理Services 目录下的 VM 关键字这是最核心的一步。注册表服务项位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services在这个分支下按 CtrlF 搜索“VMware”或“VMnet”会出现多个匹配项。常见的键包括VMnetDHCPVMware NAT ServiceVMware Authorization ServiceVMware USB Arbitration ServiceVMwareHostOpenWindowsVMnetBridge一个个选中后按 Delete 删除。搜索时注意系统里可能还有其他软件的键值里包含 VMware 字样比如某些远程控制软件会依赖 VMware 虚拟网卡。确认键名主要以 VM 开头或包含 VMware 字样再删除。如果觉得查找太累也可以用命令行直接删除。以管理员身份打开 cmd执行reg delete HKLM\SYSTEM\CurrentControlSet\Services\VMnetDHCP /f reg delete HKLM\SYSTEM\CurrentControlSet\Services\VMware NAT Service /f reg delete HKLM\SYSTEM\CurrentControlSet\Services\VMware Authorization Service /f reg delete HKLM\SYSTEM\CurrentControlSet\Services\VMware USB Arbitration Service /f注意服务名如果有空格一定要用双引号括起来。/f参数表示强制删除不会二次确认。执行成功后再回注册表编辑器确认这些键已经不存在。3.3 清理 Windows Installer 产品缓存这一部分最容易被忽略却常常是安装回滚的罪魁祸首。Windows Installer 在安装任何 MSI 产品时会把产品元数据写到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData直接浏览 Products 目录会发现很多类似 GUID 的键例如{2078C8D4-6A8F-4B6D-9A6B-...}看不到哪个是 VMware。可以通过右键每个子键查看其默认字符串或ProductName值如果包含 “VMware Workstation”就删除整个 GUID 子键。更快的办法是借助 PowerShell 查询。管理员模式运行 PowerShellGet-ChildItem HKLM:\SOFTWARE\Classes\Installer\Products | ForEach-Object { $name (Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue).ProductName if ($name -like *VMware*) { Write-Host $_.PSChildName $name } }查询出的键再手工删除。同理还要检查HKLM\SOFTWARE\WOW6432Node\Classes\Installer\Products和HKCU\Software\Classes\Installer\Products。这里有一个额外注意点Windows Installer 的安装缓存文件存放在C:\Windows\Installer目录下里面有很多 .msi 和 .msp 文件文件名也是 GUID。不建议直接按文件名删除因为有些文件是被多个产品共享的。只有在确认注册表 Products 里的键已经删除干净后才考虑清理对应文件。如果安装包还算完整通常清理完注册表重新安装就行不一定要删安装缓存文件。3.4 清理设备类注册项和驱动残留打开设备管理器点击菜单栏的“查看-显示隐藏的设备”。如果能看到 VMware 虚拟网卡、VMware 显卡设备或带感叹号的设备右键选择“卸载设备”。卸载时如果弹窗提示“尝试删除此设备的驱动程序”务必勾选这样会把驱动文件也一并清除。如果设备管理器中看不到但错误代码 19 依然存在就需要手动处理注册表类键。先查看设备管理器中网络适配器的类 GUID通常是{4d36e972-e325-11ce-bfc1-08002be10318}展开注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}这个键底下会有 0000、0001、0002 等子键逐个查看DriverDesc或MatchingDeviceId如果值是 VMware Virtual Ethernet Adapter就把对应子键整个删除。另外还有可能残留在这里HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E974-E325-11CE-BFC1-08002BE10318}这是网络组件配置区域名字可能不直观但删除后不会影响系统网络。删除前最好用 regedit 导出该子键备份万一误删再导入。删除驱动类和网络配置注册项后到设备管理器菜单栏点“操作-扫描检测硬件改动”。这一步会让系统重新检测并清空过期硬件状态。扫描后如果设备管理器里干净了说明驱动级残留已经被清除。4. 文件系统、计划任务和网络组件的二次清扫4.1 删除磁盘上的 VMware 目录注册表清理完磁盘文件也得清干净。重点检查以下路径有就整个文件夹删除C:\Program Files\VMware C:\Program Files (x86)\VMware C:\ProgramData\VMware C:\Users\用户名\AppData\Local\VMware C:\Users\用户名\AppData\Roaming\VMware C:\Users\用户名\Documents\Virtual Machines删除C:\ProgramData\VMware时可能提示部分文件被占用比如 vmnetdhcp.leases 和 vmnetnat.conf。如果强行删除失败可以先在任务管理器里结束 vmnetdhcp.exe 和 vmnat.exe 进程再重试。另外检查启动文件夹C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup如果里面有 VMware 相关的快捷方式一并删除。不要小看这一步启动项指向不存在的 exe虽然不致命但每次开机都会弹错误提示。4.2 清理计划任务与 WMI 残留VMware 12 安装时会创建计划任务在 Win10 里按 WinX 打开“计算机管理-任务计划程序”在左侧的“任务计划程序库”中找有没有 VMware 相关任务有就删除。这些任务可能叫 VMware 开头的名字也可能藏在用户自定义目录下。计划任务的物理位置在C:\Windows\System32\Tasks对应的注册表位置在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree同样搜索 VMware 关键字删除对应项。计划任务残留不会阻塞安装但会影响后续虚拟机的开机启动行为所以最好一起清掉。还要提一下 WMI 命名空间。VMware 会在 WMI 数据库里注册一些性能类和事件类。不过普通用户不太容易直接访问 WMI 存储一旦安装失败反复发生可以用管理员身份打开 PowerShell 执行Get-WmiObject -Namespace root\vmware -List -ErrorAction SilentlyContinue如果提示找不到命名空间说明没有残留如果能查到内容需要额外处理。对于绝大多数人这一步可以忽略因为 VMware 12 的 WMI 注册一般不会导致安装失败。4.3 清理虚拟网卡相关的网络配置这一步解决的是“安装完成但网络不通”的问题。在 Win10 的“网络连接”控制面板或“设置-网络-高级网络设置”里查看是否有 VMware Virtual Ethernet Adapter for VMnet1 和 VMnet8。如果存在右键删除如果不存在但安装后无法创建需要进入旧版网络适配器管理窗口。Win10 有个入口被藏得比较深控制面板-网络和共享中心-更改适配器设置。如果这里看不到旧适配器可以打开设备管理器菜单“查看-显示隐藏的设备”在“网络适配器”下找到 VMware 设备右键卸载并勾选删除驱动程序。还有一个小技巧如果全新安装后无法自动创建 VMnet1 和 VMnet8可以在安装好的 VMware 程序目录下找到 vmnetcfg.exe以管理员身份运行手动添加两个虚拟网卡。路径通常在C:\Program Files (x86)\VMware\VMware Workstation\vmnetcfg.exe老版本可能叫vmnetcfg.exe如果没有就重新完整安装一次再执行。5. 重新安装与安装后验证5.1 安装前的检查清单清理工作完成后重启电脑再开始安装。重启不是可选项而是必须项。因为重启会刷新服务控制管理器清空令牌缓存让注册表改动真正生效。重启后按以下顺序做一遍检查确认系统已经“忘记了”旧版 VMware服务管理器里搜索 VMware 或 VMnet应该没有任何相关服务注册表搜索 VMware 和 VMnet只可能出现系统自带的其他软件记录但不应再有 VMware Workstation 的安装路径设备管理器的网络适配器里不应再有 VMware 虚拟网卡文件资源管理器里C 盘的 VMware 相关目录不应存在控制面板的卸载列表里不应再有 VMware 相关条目。如果以上检查都没问题就可以放心安装。5.2 安装过程中的关键选择安装 VMware Workstation 12 时建议右键安装包选择“以管理员身份运行”。不要在解压后的文件夹里直接双击 setup.exe避免权限不足导致部分驱动写入失败。安装到“自定义安装”步骤时如果只是想在 Win10 上运行虚拟机推荐取消勾选“启动时检查产品更新”和“加入 VMware 客户体验提升计划”减少后台联网干扰。安装路径建议保持默认不要放到中文目录。虽然 VMware 本身对中文路径的支持还可以但驱动和服务的注册路径如果包含中文后续排查起来会额外增加麻烦。安装过程中可能会弹出“是否安装虚拟打印机”或“是否安装 VMware USB Arbitration Service”的提示建议全部勾选安装。因为很多时候后续 USB 设备识别不了就是因为当时没装 USB 仲裁服务。安装结束时如果提示需要重启就重启。如果没提示也可以不重启但保险起见还是重启一次确保驱动加载正常。5.3 安装完成后的功能验证装完后不要急着跑大虚拟机先做三件小验证。第一打开“服务”管理器确认 VMware Authorization Service、VMnetDHCP、VMware NAT Service 和 VMware USB Arbitration Service 这四项服务已经是“自动-已启动”状态。如果服务是“手动”但没启动右键手动启动试试。如果启动失败基本可以断定之前清理不彻底需要回头再查一遍注册表。第二打开“网络连接”确认 VMnet1 和 VMnet8 两张虚拟网卡已经存在并且状态是“已启用”。如果网络连接里只有物理网卡去设备管理器“扫描检测硬件改动”还是不对就运行 vmnetcfg.exe 重新添加。第三新建一个 Win10 虚拟机。这正好对应很多老用户的需求——删掉 VMware 12 之后重新安装往往就是为了在虚拟机里装 Win10 测试环境。新建虚拟机时可以选用“典型”模式选择本机已有或系统安装镜像CPU 分配 2 核以上内存建议 4GB 或以上。如果启动虚拟机时出现“该主机 CPU 类型不受虚拟机监视器支持”之类的提示需要在虚拟机的 .vmx 文件里手动添加一行vhv.enable TRUE如果物理机 CPU 支持虚拟化但 VMware 提示没有权限还需要检查“启用 Windows 功能”中的“虚拟机平台”和“Windows 虚拟机监控程序平台”是否开启。这两个功能如果处于开启状态会和 VMware 争夺虚拟化权限。实测下来如果只是用 VMware 12 跑虚拟机可以关闭这两个 Windows 自带虚拟化功能反而更稳定。6. 这次实战中踩过的坑常见问题排查实录6.1 VMware 服务无法启动的排查安装完成后最典型的问题就是 VMware Authorization Service 无法启动。错误日志里可能提示“本地计算机上的 VMware Authorization Service 服务启动后停止”或者“错误 1079此服务的账户不同于运行在相同进程中的其他服务账户”。多数情况下这是因为注册表里服务项的可执行文件路径还是旧的或者服务账户被修改过。可以打开注册表编辑器定位到HKLM\SYSTEM\CurrentControlSet\Services\VMware Authorization Service右侧的ImagePath值应当指向安装后的实际路径例如C:\Program Files (x86)\VMware\VMware Workstation\vmware-authd.exe如果路径不对直接修改。如果ImagePath正确但仍无法启动打开服务管理器双击该服务转到“登录”选项卡选择“此账户”填写本地系统账户Local System应用后重新启动服务。6.2 设备管理器的代码 19 处理“由于其配置信息(注册表中的)不完整或已损坏Windows 无法启动这个硬件设备。(代码 19)”这个问题最顽固。通常是因为设备类键下残留了过期的配置信息而这些配置信息指向的驱动文件已经不存在。处理方法是先确认是哪个设备报 19。如果是 VMware 虚拟网卡去设备管理器卸载设备并删除驱动软件如果设备已经被隐藏或“幽灵”状态则要清理注册表 Class 键下的对应子键。这部分操作在 3.4 节已经详细说明。这里补充一个更彻底的办法如果设备还在设备管理器中右键设备选择“更新驱动程序-浏览我的电脑以查找驱动程序-让我从计算机上的可用驱动程序列表中选取”随便选一个 Microsoft 提供的基本网络适配器。这样会让系统先重置该设备的配置然后把驱动换成通用驱动。刷新之后再重新安装 VMware或手动安装 VMware 虚拟网卡驱动。这个办法在部分帖子里被称为“顶掉幽灵设备”实测有效。6.3 注册表项无法删除时的权限修改技巧清理过程中最让我朋友庆幸的是先备份了注册表因为中途确实遇到了“打开注册表项时出现错误”的提示。VMware 的某些服务键会被 TrustedInstaller 或 SYSTEM 权限锁定普通管理员账户无法直接删除。解锁方法是右键该键选择“权限”点击“高级”将“所有者”从 System 或 TrustedInstaller 改为当前管理员账户勾选“替换子容器和对象的所有者”确认后回到权限窗口给当前账户勾选“完全控制”然后删除。如果提示“错误 5拒绝访问”可能是因为当前窗口不是管理员权限。关闭 regedit重新用“以管理员身份运行”的方式打开再试一次。如果还是不行进入安全模式操作。这里有一个比较实用的技巧使用psexec -i -s regedit.exe以 SYSTEM 权限打开注册表编辑器psexec 是微软 Sysinternals 工具。SYSTEM 权限下可以直接删除绝大多数受保护键。不过 psexec 可能会被 Win10 安全中心拦截需要手动加白名单。6.4 安装日志到底怎么看当安装失败时Windows Installer 会生成详细日志。最省事的做法是在命令行中手动执行安装包并指定日志输出路径。假设安装包名是VMware-workstation-full-12.5.9-7535481.exe执行VMware-workstation-full-12.5.9-7535481.exe /l*v C:\vmware_install.log这样会把每一步操作记录到日志中。安装失败后打开日志文件末尾几行往往就是错误点。最常见的两类错误是Return value 3或Error 1305表示文件无法读取多半是安装包损坏重新下载即可。Error 1920或Service VMware Authorization Service (VMware Authorization Service) could not be installed说明服务安装失败注册表服务项残留严重需要重新走一遍第 3 节的服务清理流程。日志文件还可以用来查找清理遗漏项比如某个文件路径在日志里反复出现“access denied”或“not found”说明对应的注册表或文件没有被清干净。用记事本打开日志后直接搜索“VMware”能快速定位所有相关路径。6.5 第三方卸载工具的合理使用如果手动清理几次仍然失败可以借助专业的卸载工具作为最后手段。这里不是指那些盲目的“垃圾清理”软件而是针对卸载残留专门设计的软件比如 Revo Uninstaller Pro 或 Geek Uninstaller。使用前先备份注册表然后在安全模式下运行其“卸载残留扫描”功能重点扫描 VMware 相关项。我个人的习惯是先用系统自带方式卸载重启再手动清理注册表实在搞不定才上第三方工具。第三方工具扫描出的结果需要人工确认不要无脑全选删除。扫描结果里经常出现HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\VMwareTray这种看起来可疑但实际上无害的启动项一起删掉没问题但如果它把系统 Update 相关的条目也列为“残留垃圾”就要小心。经过这一轮系统清理朋友的电脑在重新安装 VMware 12 后一次成功虚拟网卡也能正常识别在虚拟机里装完 Win10 后运行很流畅。这次排错给我最大的感受就是处理卸载重装问题不能只盯着安装包和程序文件注册表里的服务项、驱动类项、Installer 产品库这三块才是关键。只要按“备份-停服务-清服务项-清安装记录-清驱动-重启-安装”这个顺序走绝大多数反复安装失败的问题都能解决。最后再分享一个小经验重装之前如果在“网络连接”里看到多个无效的 TAP-Windows 适配器或 VMware 虚拟网卡最好一并清理干净。这类虚拟网卡残留不仅会影响新版本安装还可能导致物理机的网络桥接变得异常。动手清理注册表时建议每删一个关键项就截图或者记录一下方便出问题时回溯。实际操作中宁可多花十分钟确认也不要为了省事直接跳过某一步否则很可能又回到安装失败的循环里。