摆脱 Windows 10 上的更新错误 0x800f0845

已发表: 2020-06-08

如果您因为不断看到错误代码 0x800f0845 而无法通过 Windows 更新实用程序为您的系统安装最新更新,本文中的解决方案将帮助您摆脱该错误。

运行 Windows 更新疑难解答

Windows 更新疑难解答是一种专用工具,用于检查影响 Windows 更新实用程序的故障。 它将检查与 Windows 更新相关的服务,并尝试解决可能阻止该工具正常运行的任何应用程序冲突。 运行疑难解答程序后,它将告诉您发生了哪些错误,并允许您应用必要的修复(如果可用)。 要找到 Windows 更新疑难解答,您必须通过 Windows 设置应用程序。

请按照以下步骤执行此操作:

  1. 单击“开始”按钮,然后在“开始”菜单出现后选择齿轮图标。 您还可以使用 Windows + I 键盘组合打开“设置”应用程序。
  2. 设置主页打开后,单击位于窗口底部的更新和安全图标。
  3. 出现更新和安全界面后,转到窗口的左窗格并单击疑难解答。
  4. 现在,导航到右窗格并单击 Windows 更新。
  5. 在 Windows 更新下看到运行疑难解答按钮后,单击它。
  6. 疑难解答现在将开始扫描困扰 Windows 更新实用程序的问题。
  7. 扫描完成后,疑难解答程序将要求您应用推荐的修复程序(如果有)。
  8. 单击“应用”按钮,然后允许该工具完成该过程。
  9. 该过程完成后,请尝试更新您的 PC。

使用系统文件检查器工具检测有问题的系统文件并自动替换它们

某些系统文件可能已损坏或丢失,并且在您想要更新系统时触发错误。 众所周知,没有系统文件的参与,您的计算机上不会运行任何进程。 要解决此问题,在这种情况下,您必须运行系统文件检查器工具来查找丢失或损坏的系统文件并自动替换它们。

由于您使用的是 Windows 10,因此您必须在运行系统文件检查器之前运行收件箱部署映像服务和管理工具。 DISM 的工作是提供将用于替换有问题的文件的文件。

以下步骤将向您展示如何运行 DISM 和 SFC:

  1. 右键单击“开始”按钮,然后单击“快速访问”菜单中的“运行”。 如果要更快地启动对话框,请同时按 Windows 和 R 键。
  2. 在屏幕左下角打开运行后,键入“CMD”(不带引号),然后同时按 Ctrl、Shift 和 Enter 键。
  3. 一旦弹出用户帐户控制对话框窗口并请求以管理员身份运行命令提示符的权限,请单击是按钮。
  4. 在管理员模式下打开命令提示符窗口后,在黑屏中键入以下行并按 Enter 键运行 DISM 工具:

DISM.exe /Online /Cleanup-image /Restorehealth

该命令将提示 DISM 工具使用 Windows 更新实用程序获取修复文件。 但是,由于 Windows Update 客户端运行不正常,您必须使用不同的修复源。 您可以使用可启动的 USB 或 Windows 10 DVD。 您还可以将 Windows 10 ISO 文件挂载为虚拟 DVD,并将其用作修复源。 确保记下您正在使用的修复源的 Windows 文件夹的路径。

现在,改用以下行:

DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:X:\Source\Windows /LimitAccess

请注意,X:\Source\Windows 表示您正在使用的修复源中的 Windows 文件夹的路径。 在输入命令之前相应地替换它。

等待命令完全执行,然后再继续下一步。

  1. 现在,在命令提示符中输入“sfc/scannow”(不带引号),然后按 Enter 键。
  2. 命令完成后,如果您看到完成消息“Windows 资源保护找到损坏的文件并成功修复它们”,请重新启动系统。
  3. 如果您看到一条消息“Windows 资源保护无法执行请求的操作”,那么您必须以安全模式重新启动系统并运行该命令。 如果您不知道如何进入安全模式,请按照以下步骤操作:
  • 单击“开始”按钮,然后在“开始”菜单出现后选择齿轮图标。 您还可以使用 Windows + I 键盘组合打开“设置”应用程序。
  • 设置应用程序打开后,单击更新和安全图标。
  • 出现更新和安全界面后,转到左侧窗格并单击恢复。
  • 单击右窗格中高级启动下的立即重新启动。
  • 看到“选择一个选项”屏幕后,单击“疑难解答”图标。
  • 单击疑难解答屏幕上的高级选项。
  • 现在,一旦出现“高级选项”屏幕,请单击“启动设置”。
  • 当您看到启动设置屏幕时,单击立即重新启动按钮。
  • PC 重新启动后,点击安全模式或带网络的安全模式旁边的数字。
  • 一旦你的电脑启动,运行系统文件检查器,就​​像我们在上面展示的那样。

请注意,您的硬盘驱动器的健康状况会影响您的系统文件。 如果驱动器碎片严重,您的计算机可能开始难以访问某些文件。 在某些情况下,您可能必须处理硬盘上的坏扇区。 为确保您不会遇到此问题,请使用可以使您的硬盘驱动器进行碎片整理并保持良好状态的工具。 Auslogics 磁盘碎片整理将完成所有这些以及更多工作。

重新启动 Windows 更新服务

Windows Update 实用程序有不同的服务,它们可以使其正常运行。 这些服务可能当前不可用或不活动。 此特定修复涉及重新启动它们以确保它们按应有的方式运行。 您可以使用服务应用程序或命令提示符重新启动服务。 我们将引导您完成每一个过程。

通过服务应用程序:

  1. 右键单击“开始”按钮,然后从“快速访问”菜单中选择“运行”。 您还可以同时按下 Windows 和 R 键以打开“运行”对话框。
  2. 运行出现后,在文本字段中输入“Services.msc”(不带引号),然后按 Enter 键。
  3. 服务应用程序打开后,找到以下服务:
  • 后台智能传输服务
  • 加密服务
  • Windows 更新服务
  • 应用程序身份服务
  1. 右键单击每个服务,单击属性,然后单击停止按钮。 之后,在启动类型下拉菜单中选择自动,然后单击确定。
  2. 现在,尝试运行更新。

使用命令提示符:

  1. 通过右键单击“开始”按钮并从“快速访问”菜单中选择“运行”来调用“运行”对话框。 您还可以使用 Windows + R 键盘组合来启动“运行”对话框。
  2. 运行打开后,键入“CMD”(无引号),然后同时按下 Ctrl、Shift 和 Enter 键。
  3. 一旦用户帐户控制对话框窗口打开并请求权限,请单击是按钮。
  4. 在管理员模式下打开命令提示符窗口后,在黑屏中键入以下行并在键入后按 Enter 键:

净停止位

净停止 wuauserv

净停止 appidsvc

净停止 cryptsvc

  1. 接下来,键入以下行并在键入每行后按 Enter:

网络起始位

净启动 wuauserv

网络启动 appidsvc

网络启动 cryptsvc

  1. 命令执行后,关闭命令提示符并运行 Windows 更新以检查错误。

扫描整个系统以查找恶意软件

事实证明,您可能正遭受恶意软件感染。 恶意软件程序会破坏大量系统文件。 恶意软件程序可能损坏了连接到 Windows 更新进程的文件夹和文件。 尝试扫描您的计算机并检查是否已解决问题。

运行完整扫描而不是让防病毒程序运行常规快速扫描非常重要。 全面扫描将扫描您系统的不同角落,并确保不遗余力。 您可以轻松进入防病毒程序的扫描菜单以启动全面扫描。 如果您依靠 Windows 安全中心来保护系统,请按照以下步骤运行完整扫描:

  1. 打开“开始”菜单,然后单击电源图标上方的齿轮。 您还可以使用 Windows + I 键盘组合来启动设置应用程序。
  2. 看到 Windows 设置应用程序的主屏幕后,单击更新和安全标签,该标签应位于页面底部。
  3. 出现“更新和安全”界面后,转到左侧窗格并单击“Windows 安全”。
  4. 转到 Windows 安全选项卡,然后单击保护区域下的病毒和威胁保护。
  5. Windows 安全应用程序的病毒和威胁防护页面打开后,单击扫描选项。
  6. 在“扫描选项”界面上,选择“全面扫描”单选按钮,然后单击“立即扫描”按钮。
  7. 完整扫描应在一小时或更长时间内完成,因此请给程序时间来完成其工作。
  8. 扫描完成后,采取该工具推荐的操作,然后重新启动系统并检查错误 0x800f0845 是否消失。

您可以通过安装 Auslogics Anti-Malware 为您的计算机添加额外的安全层。 该工具是一个完整的恶意软件清除程序,可与其他防病毒程序(包括 Windows 安全性)一起使用。 它不会引起任何类型的冲突。

释放/更新您的 IP 地址并刷新您的 DNS 缓存

DNS 缓存包含以数字形式将字母数字、人类友好的域名映射到其 IP 地址的信息。 随着时间的推移,缓存可能会累积错误的参数或损坏。 一旦发生这种情况,将开始出现连接问题,这可能是您在更新系统时遇到错误代码的原因。 解决该问题需要清除 DNS 缓存中的所有参数,以便 Windows 可以开始重建它。

刷新 DNS 后,我们建议的下一步是释放和更新您的 IP 地址。 您的路由器或互联网设备通常会为您的系统分配一个特定的 IP 地址。 如果此 IP 地址不可用或出现问题,您的系统将无法连接到 Internet,这可能会导致在您想要安装更新时出现错误代码。 发生这种情况时,您需要从路由器获取新的 IP 地址。 为此,您必须运行一个释放 IP 地址并更新它的命令。

以下步骤将向您展示如何刷新 DNS 缓存并释放/更新您的 IP 地址:

  1. 使用 Windows + S 组合键或单击任务栏中的放大镜,打开“开始”菜单旁边的搜索文本框。
  2. 搜索栏打开后,在文本字段中输入“cmd”(不带引号)。
  3. 命令提示符出现在结果中后,右键单击它,然后单击以管理员身份运行。
  4. 单击“用户帐户控制”确认提示中的“是”以授予命令提示符管理权限。
  5. 接下来,在命令提示符中键入以下命令行,并在键入每一行后按 Enter 键:

ipconfig /flushdns

ipconfig /发布

ipconfig /更新

请注意命令中的空格。

  • 现在,尝试执行更新。

重置 Winsock 组件

Winsock 组件处理来自计算机上基于 Web 的应用程序的每个输入和输出请求。 它是一个 DLL 文件,可以在 System 32 文件夹中找到。 它将信息和配置从不同的程序传输到您的网络接口,即 TCP/IP。

由于 Winsock 组件包含错误的配置或已损坏,Windows 更新进程可能会停止并出现错误。 您可以通过重置它来解决问题。 请注意,您必须打开命令提示符窗口并输入适当的命令。 以下步骤将向您展示如何操作:

  1. 启动运行对话框。 您可以通过右键单击“开始”按钮并选择“运行”、在“开始”菜单中搜索“运行”或使用 Windows + R 键盘组合来执行此操作。
  2. 在屏幕左下角显示“运行”后,键入“CMD”(不带引号),然后同时按下 Ctrl、Shift 和 Enter 键。
  3. 现在将弹出用户帐户控制对话框窗口并请求以管理员身份运行命令提示符的权限。 一旦发生这种情况,请单击是按钮。
  4. 命令提示符以管理员模式打开后,在黑屏中键入以下行:

netsh winsock 重置

  1. Windows 现在将通过替换 DLL 文件来重置 Winsock 组件。
  2. 命令成功执行后,重新启动计算机并尝试更新它。

重置 Windows 更新组件

除了 Windows 服务之外,还有其他组件可以使 Windows Update 实用程序正常工作。 其中包括系统文件和文件夹以及注册表项。 下面的指南将向您展示重置这些组件的分步过程。 重置它们后,Windows 更新实用程序应该可以正常工作:

行动 1

通过右键单击“开始”按钮并从“快速访问”菜单中选择“运行”来调用“运行”对话框。 您还可以使用 Windows + R 键盘组合来启动“运行”对话框。

行动 2

运行打开后,键入“CMD”(无引号),然后同时按下 Ctrl、Shift 和 Enter 键。

行动 3

一旦用户帐户控制对话框窗口打开并请求权限,请单击是按钮。

行动 4

在管理员模式下打开命令提示符窗口后,在黑屏中键入以下行并在键入后按 Enter 键:

净停止位

净停止 wuauserv

净停止 appidsvc

净停止 cryptsvc

行动 5。

现在您已经停止了 Windows 更新服务,请转到命令提示符中的下一行并输入以下命令以删除 qmgr*.dat 文件:

德尔“%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat”

按 Enter 键。

行动 6。

接下来,使用下面的命令行重命名 SoftwareDistribution 和 Catroot2 文件夹。 请记住在键入每一行后点击 Enter 键:

任 %systemroot%\SoftwareDistribution SoftwareDistribution.bak

任 %systemroot%\system32\catroot2 catroot2.bak

行动 7。

之后,将 Windows 更新和后台智能传输服务重置为其默认安全描述符。 为此,请键入或复制并粘贴以下命令,并在输入每个命令后按 Enter 键:

sc.exe sdset 位 D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

行动 8。

在命令提示符中键入以下内容,然后按 Enter 进入 System32 文件夹:

cd /d %windir%\system32

行动 9。

注册所有后台智能传输服务组件。 为此,请在命令提示符中键入以下行,并在键入每一行后按 Enter 键。 有很多行,所以花点时间把它做好:

regsvr32.exe atl.dll

regsvr32.exe urlmon.dll

regsvr32.exe mshtml.dll

regsvr32.exe shdocvw.dll

regsvr32.exe browseui.dll

regsvr32.exe jscript.dll

regsvr32.exe vbscript.dll

regsvr32.exe scrrun.dll

regsvr32.exe msxml.dll

regsvr32.exe msxml3.dll

regsvr32.exe msxml6.dll

regsvr32.exe actxprxy.dll

regsvr32.exe softpub.dll

regsvr32.exe wintrust.dll

regsvr32.exe dssenh.dll

regsvr32.exe rsaenh.dll

regsvr32.exe gpkcsp.dll

regsvr32.exe sccbase.dll

regsvr32.exe slbcsp.dll

regsvr32.exe cryptdlg.dll

regsvr32.exe oleaut32.dll

regsvr32.exe ole32.dll

regsvr32.exe shell32.dll

regsvr32.exe initpki.dll

regsvr32.exe wuapi.dll

regsvr32.exe wuaueng.dll

regsvr32.exe wuaueng1.dll

regsvr32.exe wucltui.dll

regsvr32.exe wups.dll

regsvr32.exe wups2.dll

regsvr32.exe wuweb.dll

regsvr32.exe qmgr.dll

regsvr32.exe qmgrprxy.dll

regsvr32.exe wucltux.dll

regsvr32.exe muweb.dll

regsvr32.exe wuwebv.dll

行动 10。

现在,您必须删除一些不必要的注册表项。

在此之前,请注意编辑注册表是一项敏感任务,您必须仔细按照以下步骤操作。 为了安全起见,请在应用此修复程序之前备份您的注册表。

现在,按照以下步骤删除不需要的注册表项:

  1. 使用 Windows + R 键盘组合启动运行。
  2. 在屏幕左下角显示“运行”后,键入“regedit”(不带引号),然后按 Enter 键。
  3. 现在将弹出用户帐户控制对话框窗口并请求权限。 单击是按钮。
  4. 注册表编辑器打开后,转到左窗格并向下钻取到HKEY_LOCAL_MACHINE\COMPONENTS。
  5. 在 COMPONENTS 下,检查是否存在以下键并将其删除:
  • PendingXml 标识符
  • 下一个队列条目索引
  • AdvancedInstallersNeedResolving

行动 11。

最后,转到管理员命令提示符并依次输入以下行以重新启动您之前停止的服务:

网络起始位

净启动 wuauserv

网络启动 appidsvc

网络启动 cryptsvc

重新启动您的 PC 并尝试更新您的系统。

重置您的主机文件

如果没有任何效果,请尝试重置您的 Hosts 文件。 该文件包含允许在系统的网络基础架构中进行通信的配置。 该文件可能已损坏,或者它的某些配置现在是错误的。 将其重置为默认值并检查错误是否消失。 以下步骤将引导您完成该过程:

    1. 使用 Windows + S 组合键或单击任务栏上的放大镜图标打开“开始”菜单旁边的搜索文本框。
    2. 搜索栏打开后,在文本字段中键入“记事本”(不带引号),然后单击结果中的记事本。
    3. 记事本打开后,将以下文本复制并粘贴到新文件中:

# 版权所有 (c) 1993-2006 Microsoft Corp.

#

# 这是 Microsoft TCP/IP 用于 Windows 的示例 HOSTS 文件。

#

# 此文件包含 IP 地址到主机名的映射。 每个

# 条目应保留在单独的行上。 IP 地址应该

# 放在第一列后跟相应的主机名。

# IP地址和主机名至少要分开一

# 空间。

#

# 此外,评论(例如这些)可能会插入个人

# 行或在机器名称后面用“#”符号表示。

#

# 例如:

#

# 102.54.94.97 rhino.acme.com # 源服务器

# 38.25.63.10 x.acme.com # x 客户端主机

# localhost 名称解析在 DNS 本身内处理。

# 127.0.0.1 本地主机

# ::1 本地主机

    1. 单击文件菜单并选择另存为。 您也可以同时按下 Ctrl、Shift 和 S 键。
    2. 出现“保存”对话框后,将文件作为“主机”保存在 Documents 文件夹中。
    3. 现在,通过同时按下 Windows 和 E 键或单击桌面上的文件夹来调用文件资源管理器窗口。 您也可以右键单击开始按钮并选择文件资源管理器或单击任务栏上的文件夹图标。
    4. 文件资源管理器窗口打开后,导航到C:\Windows\System32\drivers\etc ,在 ETC 文件夹中找到 Hosts 文件并将其重命名为“Hosts.old”(无引号)或您选择的任何其他名称。 如果弹出任何确认对话框,请接受。
    5. 导航到您的文档并将您之前创建的 Hosts 文件移动到C:\Windows\System32\drivers\etc目录中。
  • 如果系统提示您输入管理员密码,请提供详细信息并单击继续。

结论

上述解决方案之一将帮助您摆脱错误。 如果没有任何效果,您可以访问 Microsoft 的网站手动下载并安装更新。 如果您有想与我们分享的想法,请使用下面的评论部分!