概要
Windows 更新错误0x80070570 (ERROR_FILE_OR_DIRECTORY_CORRUPTED)指示Windows无法读取或处理安装更新所需的文件。 此错误通常由损坏的更新缓存文件、损坏的Windows组件存储、磁盘错误或安全软件干扰导致的。 本文介绍此错误的症状和原因,并提供在受支持的 Windows 客户端版本、Windows Server和Microsoft Azure 虚拟机(VM)上解决此错误的步骤。
现象
您安装了一个 Windows 更新,但安装失败,并显示错误代码 0x80070570。
若要获取详细信息,请查看以下资源:
-
查看WindowsUpdate.log文件或CBS.log文件。 查找类似于以下示例的条目:
Error CBS Failed to internally open package. [HRESULT = 0x80070570 - ERROR_FILE_OR_DIRECTORY_CORRUPTED] Info CBS Failed to resolve package [Package_for_KB5XXXXXX~31bf3856ad364e35~amd64~~XX.X.X.X] [HRESULT = 0x80070570] -
若要扫描系统文件中的问题,请打开命令提示符窗口,然后运行以下命令:
sfc /verifyonly
原因
如果存在以下条件之一,则会发生此错误:
- %windir%\SoftwareDistribution\Download 文件夹中下载的更新文件已损坏。
- Windows组件存储(%windir%\WinSxS 文件夹中)包含损坏的清单或文件。
- 系统卷已损坏(例如,磁盘可能有错误的扇区或文件系统错误)。
- 当Windows 更新从下载的更新包中提取文件时,防病毒或安全应用程序会干扰。
- 由于下载过程被中断,更新文件可能被截断或不完整。
注释
%windir% 表示Windows系统文件夹。 默认文件夹名称和位置为“C:\Windows”。
解决方案
重要
在解决此问题之前,请备份操作系统的磁盘。 有关 VM 此过程的信息,请参阅 “关于 Azure 虚拟机还原”。
步骤 1:清除Windows 更新缓存
若要删除损坏的下载文件并强制Windows 更新下载新副本,请打开命令提示符窗口,然后运行以下命令:
net stop wuauserv
net stop bits
rd /s /q %windir%\SoftwareDistribution\Download
net start bits
net start wuauserv
运行这些命令后,请重新启动计算机,然后重试安装更新。 如果更新仍未安装,请转到步骤 2。
步骤 2:修复组件存储
若要修复组件存储,请在命令提示符处运行以下命令:
DISM /Online /Cleanup-Image /RestoreHealth
注释
默认情况下,DISM 使用Windows 更新作为修复源。 有关如何指定其他修复源的信息,请参阅 恢复Windows映像。
运行此命令后,请重新启动计算机,然后重试安装更新。 如果更新仍未安装,请转到步骤 3。
步骤 3:检查系统文件完整性
若要验证系统文件的完整性,请在命令提示符处运行以下命令:
sfc /scannow
如果此命令标识问题,请参阅 “使用系统文件检查器”工具修复缺失或损坏的系统文件。
命令成功完成后,请重新启动计算机。 请重试安装更新。 如果更新仍未安装,请转到步骤 4。
步骤 4:检查磁盘完整性
若要检查磁盘问题,请执行以下步骤:
-
在受影响的计算机上,打开命令提示符窗口,并运行以下命令:
chkdsk C: /f /r -
出现提示时,确认希望在计算机重启时扫描操作系统磁盘。
-
重启电脑 该工具会自动修复它找到的任何问题。
重要
如果受影响的计算机是Azure VM,并且使用Azure门户监视和修正磁盘运行状况,请转到此过程的下一步。 仍需重启使用该磁盘的 VM。
-
工具完成后,重启计算机,然后重试安装更新。 如果更新仍未安装,请执行下列操作之一:
- 如果受影响的计算机是 VM,请转到步骤 5。
- 请联系 Microsoft 支持寻求帮助。
步骤 5:使用“运行命令重置”工具(Azure)
如果前面的步骤无法解决Azure VM 上的问题,请尝试 Azure VM Windows 更新重置工具。 可以使用 Operations>Run 命令直接从 VM 的Azure门户页运行该工具。 使用此方法时,无需登录到 VM。
此工具重置Windows 更新服务堆栈。 此操作在更新代理中清除与内存相关的锁状态。
运行该工具后,请重试安装更新。 如果它仍然未安装,请转到步骤 6。
步骤 6:使用修复虚拟机 (Azure)
如果重置工具无法解决问题,或者 VM 无法启动:
-
将受影响的操作系统磁盘附加到修复 VM。
-
请确保具有可用的脱机操作系统映像,然后在命令提示符处运行以下命令:
DISM /Image:<Drive>:\ /Cleanup-Image /RestoreHealth注释
- 在此命令中, <驱动器> 表示受影响操作系统磁盘的驱动器号。
- 默认情况下,DISM 使用Windows 更新作为修复源。 有关如何指定其他修复源的信息,请参阅 恢复Windows映像。
-
在命令提示符处运行以下命令:
chkdsk <Drive>: /f /r注释
在此命令中, <驱动器> 表示受影响操作系统磁盘的驱动器号。
-
若要验证系统文件的完整性,请在命令提示符处运行以下命令:
sfc /scannow /offwindir \<Drive>:%windir% -
将修复的磁盘重新附加到原始 VM。
-
请重试安装更新。 如果更新仍未安装,请联系Microsoft 支持部门以获取帮助。