Windows实例系统更新失败, 提示“0x80070422(服务无法启动或运行)”错误怎么办?

本文介绍Windows实例系统更新失败,提示“0x80070422(服务无法启动或运行)”错误的解决方案。

问题现象

在Windows系统的ECS实例中,出现Windows系统无法获取更新或安装更新失败的问题,并提示“0x80070422(服务无法启动或运行)”错误。如下图所示:

image

问题原因

导致该问题的可能原因包括但不限于以下几点:

解决方案

方案一:通过PowerShell或修改注册表启用服务

  1. 远程连接Windows实例。

    具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  2. 选择以下任一方式,启用被禁用的服务。

    执行PowerShell脚本

    1. 打开CMD命令提示符。

      1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击Windows PowerShell(管理员)

        image

    2. 执行以下命令,以配置相应服务为开机自启动并启动该服务。

      Set-Service -Name <ServiceName> -StartType Automatic
      Start-Service -Name <ServiceName>
      说明

      请您根据实例诊断报告信息,将上述脚本内容中的<ServiceName>修改为实际被禁用的服务名称。具体的诊断项以页面显示为准。更多信息,请参见诊断实例的健康状态

      BITS服务为例,如果系统返回类似以下信息,则表明启动BITS服务失败。

      image

    3. (可选)如果脚本无法启动目标服务,则需要重启实例使配置生效。相关操作,请参见重启实例

      说明

      部分系统服务必须重启实例,请以实际操作环境为准。

    手动修改注册表

    1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击运行win2016运行

    2. 运行对话框中输入regedit,然后单击确定,进入注册表编辑器对话框。

      image

    3. 在注册表编辑器的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BITS路径下,双击名称为Start的注册表项,将数值数据修改为十六进制数值2,然后单击确定

      image

    4. (可选)如果无法启动目标服务,则需要重启实例使配置生效。

      具体操作,请参见重启实例

      说明

      部分系统服务必须重启实例,请以实际操作环境为准。

  3. 重新更新Windows系统,如果可以正常更新或安装,说明问题已解决。

方案二:使用SFC工具修复二进制文件

  1. 远程连接Windows实例。

    具体操作,请参见使用Workbench工具以RDP协议登录Windows实例

  2. 打开CMD命令提示符。

    1. 右键单击Dingtalk_20210510142550.jpg图标,然后单击Windows PowerShell(管理员)

      image

  3. 执行以下命令,检测所有系统文件的完整性并执行修复动作。

    sfc /scannow
  4. 重新更新Windows系统,如果可以正常更新或安装,说明问题已解决。