当通过镜像检测功能检测出Windows操作系统磁盘上有残留驱动项、系统中存在残留Xen驱动或者存在禁止安装驱动属性设置等异常检测项时,您可以参考本文的操作指导进行修复。

清理注册表残留驱动

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control注册表树包含了控制系统启动和设备某些方面的配置信息,而其中的Class子项包含了设备上注册的一些过滤驱动。如果这些过滤驱动实际已被删除但是注册表中的过滤驱动中还残留着,会导致实例启动异常,因此需要清理注册表的过滤驱动残留项。以下主要介绍如何手动清理磁盘类注册表中的残留项。

  1. 登录制作镜像文件的源服务器。
  2. 打开注册表。
    以Windows 10为例,在任务栏的搜索框中输入 regedit,按 Enter即可打开注册表。
  3. 打开磁盘注册表项。
    磁盘注册表路径为 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e967-e325-11ce-bfc1-08002be10318}
  4. 确认并删除残留驱动。
    1. 查看UpperFilter属性的值,确认系统是否有残留的驱动。

      如果对应的驱动在镜像中已经不存在(在C:\Windows\System32\drivers中查看),但在UpperFilters中还残留着,表示系统有残留驱动。

    2. 在UpperFilters中删除残留驱动名称。
      警告 请您谨慎执行该操作,务必确认该驱动不是系统自带驱动,避免误删除驱动导致系统异常。
      例如,如下图所示的pargmgr是系统自带驱动,此时不能在UpperFilters中将其删除。 系统自带驱动

配置Xen驱动不生效

对于专有网络已经不使用Xen驱动,在一些比较老的镜像中可能还残留Xen驱动,可能会导致实例启动异常。可以在注册表中对Xen驱动进行配置,使Xen驱动不生效。

  1. 登录制作镜像文件的源服务器。
  2. 打开注册表。
    以Windows 10为例,在任务栏的搜索框中输入 regedit,按 Enter即可打开注册表。
  3. 打开对应的注册表项。
    注册表路径为 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\XenPCI\Parameters
  4. 修改注册表hide_devices属性的值,将其置为空。
    修改注册表

配置驱动可安装

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services注册表树记录着系统中的所有服务,其中一些服务可以控制驱动是否允许被安装,如果设置了不允许安装,用该镜像创建的实例将无法更新驱动。因此需要修改镜像的注册表禁止安装驱动属性。

  1. 登录制作镜像文件的源服务器。
  2. 打开注册表。
    以Windows 10为例,在任务栏的搜索框中输入 regedit,按 Enter即可打开注册表。
  3. 打开对应的注册表项。
    • Windows Server 2008 R2以上系统:注册表路径为HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\DeviceInstall\Parameters
    • Windows Server 2008 R2及以下系统:注册表路径为HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\PlugPlay\Parameters
  4. 修改注册表禁止安装驱动属性。如果有DeviceInstallDisabled属性且值非0,则需要将其值修改为0或者删除该属性。
    • 例如Windows Server 2008 R2系统:2008R2系统注册表
    • 例如Windows Server 2016系统:windows server 2016注册表