在 Windows 7 Ultimate 上安装 Windows 10 时“检查要求”失败,错误代码为 80070005

在 Windows 7 Ultimate 上安装 Windows 10 时“检查要求”失败,错误代码为 80070005

MS 网站上有很多人遇到过这个问题。就我的情况以及许多其他情况而言,这个问题无法通过解决 Windows 更新和设置问题的常规技术来解决。我将在下一篇文章中发布 MS 网站讨论的链接。

如果可能的话,我需要通过系统分析来追踪这个错误,而不是重置所有内容:),但如果有人真正知道这个确切问题的解决方案,请说一下。

我正在使用管理员帐户从系统托盘上弹出的标准 Windows 10 升级通知蓝色对话框中进行安装。通知框似乎卡在下载更新阶段,但如果您单击“查看下载进度”,标准 Windows 更新对话框中将仅显示“正在下载”5 秒钟左右,然后短暂转到“检查要求”,然后显示“失败 - 1 个更新”,错误 80070005。您可以按“再试一次”按钮重复该序列。Windows 更新肯定认为它已下载,因为当您“检查更新”时它被列为准备好安装。这里的检查要求意味着检查某些文件是否存在,而不是检查系统适用性,这在 Windows 10 安装过程中已经确认过。

如果你在网上搜索解决方案,你会发现大约 20 个,但对我和其他许多用户来说,这些解决方案都不起作用。这些解决方案包括:

  1. 将 Windows 更新设置重置为默认值(各种方法)
  2. 重置注册表和文件权限,以确保管理员和系统帐户的完全控制(使用网络上提供的方法,该过程无法完全成功,因为他们不承担所有权)。
  3. 使用可启动更新 CD(这个我没有尝试过,但其他人试过)
  4. 禁用所有防病毒软件并检查日志
  5. 禁用显然会产生干扰的 RAC 服务。
  6. 使用 SFC 和 DISM(包括证书损坏修复)来确保操作系统映像干净
  7. 清除软件分发文件夹,并尝试确保它们不是隐藏的或只读的(当您执行此操作时,Windows 实际上只是将它们重新设置回来)
  8. 使用 msconfig 进行干净启动以禁用启动并禁用(但尚未卸载)安全软件(Comodo Endpoint Security)。

在最初报告该错误的 MS 帖子中还列出了许多其他错误,这里是:http://www.thewindowsclub.com/windows-update-not-working

到目前为止,我已经追踪了从按下“再试一次”按钮开始的整个过程,如下所示:

  1. powershell 脚本会清除之前的所有尝试
  2. Wuauclt.exe 运行 WindowsBox.exe
  3. Windows box.exe 运行 SetupHost.exe,后者运行同一进程的另一个实例
  4. 安装主机 .exe 似乎会经过一系列检查,以确保文件存在于 System32 和 C:\$Windows.~BT 目录中,设置预取,并可能创建不存在的预取。
  5. Setuphost.exe 将错误代码 80070005 返回给 WindowsBox.exe

Windows 更新客户端 (wuauclt) 日志没什么用,它只提供错误代码。因此我给出了下面的事件日志条目

通过观察 Procmon 中的进程,我能够识别由 WindowsBox.exe 创建的日志,即 BlueBox.log,它显示了更多内容,包括从 SetupHost 返回的错误消息。

不幸的是,SetupHost.exe 似乎不会生成日志 - 如果有人知道如何生成日志,我将不胜感激。因此,我提供了 procmon 日志。可能相关的是“名称未找到”、“缓冲区溢出”和“文件锁定,无法读取”结果代码。但为什么在“创建文件”操作中会出现“名称未找到”错误?(缓冲区溢出结果是在访问 HKU.DEFAULT\Control Panel\Desktop\MuiCache\MachinePreferredUILanguages 时产生的)。

更新 我检查了缓冲区溢出错误,似乎该过程成功地使用更大的结果缓冲区重试。此外,“文件仅由读者锁定”似乎是意料之中的,因为这实际上是创建直接文件映射到文件的交换文件映像的操作的成功代码。所以剩下 Name_not_found 错误。但还有很多这样的......

退出代码也是:-2147024891。在我看来,这很可能是无效代码?那么我应该寻找进程异常吗?如果是,为什么没有 Windows 事件日志?

事件日志条目:

Version=1
EventType=WindowsUpdateFailure3
EventTime=130852247770872553
Consent=1
UploadTime=130852247771282605
ReportIdentifier=501bd0e0-4d60-11e5-a861-005056c00008
Response.BucketId=195354731
Response.BucketTable=29
Response.type=4
Sig[0].Name=ClientVersion
Sig[0].Value=7.6.7601.18937
Sig[1].Name=Win32HResult
Sig[1].Value=80070005
Sig[2].Name=UpdateId
Sig[2].Value=D246F4DF-353A-40C3-8F1A-4BF96CA78DBE
Sig[3].Name=Scenario
Sig[3].Value=Install
Sig[4].Name=RevisionID
Sig[4].Value=200
Sig[5].Name=IsManaged
Sig[5].Value=0
Sig[6].Name=LastError
Sig[6].Value=0
Sig[7].Name=CallerAppID
Sig[7].Value=AutomaticUpdates
Sig[8].Name=ServiceUsed
Sig[8].Value={7971F918-A847-4430-9279-4A52D1EFE18D}
Sig[9].Name=MiscField2
Sig[9].Value=0
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=6.1.7601.2.1.0.256.1
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=2057
State[0].Key=Transport.DoneStage1
State[0].Value=1
State[1].Key=DataRequest
State[1].Value=Bucket=195354731/nBucketTable=29/nResponse=1/n
FriendlyEventName=Windows Update installation problem
ConsentKey=WindowsUpdateFailure3
AppName=Host Process for Windows Services
AppPath=C:\Windows\System32\svchost.exe
ReportDescription=A Windows update did not install properly. Sending the following information to Microsoft can help improve the software.

Windowsbox.exe 日志

2015-08-28 09:50:48: CommandLine: ["C:\Windows\SoftwareDistribution\Download\bc9f855f0d1ed8adb26c77e77d473907\WindowsUpdateBox.exe" /ClassId ad20b347-38d2-4d24-a687-02a5be7ff3bf  /PreDownload /Update /ClientId 11149530-b21d-4d53-9ad1-f4c755be62fe /ReportId {79199283-9EB3-441C-895C-193956626E64}.200]
2015-08-28 09:50:48: Deleting box result...
2015-08-28 09:50:48: Attempt to remove staged Appx packages...
2015-08-28 09:50:48: RemoveStagedAppxPackages: Launching [C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe] [-command "& {get-appxpackage | remove-appxpackage}"] from [C:\Windows\System32] in session [0]!
2015-08-28 09:50:48: Checking cleanup registry value...
2015-08-28 09:50:48: Skipping cleanup.
2015-08-28 09:50:48: CUpdateScenarioCtrl::ShouldPreserveWorkingDir: Found previously stored file hash.
2015-08-28 09:50:48: CUpdateScenarioCtrl::GenerateBoxHash: Calculating file hash...
2015-08-28 09:50:48: CUpdateScenarioCtrl::ShouldPreserveWorkingDir: Box file hash matches.
2015-08-28 09:50:48: Opening Box: [C:\Windows\SoftwareDistribution\Download\bc9f855f0d1ed8adb26c77e77d473907\WindowsUpdateBox.exe]
2015-08-28 09:50:48: Reading Box header...
2015-08-28 09:50:48: Execute file [C:\$Windows.~BT\Sources\SetupHost.Exe] exists: [TRUE]
2015-08-28 09:50:48: Preserve working path: [Yes]
2015-08-28 09:50:48: Opening Box: [C:\Windows\SoftwareDistribution\Download\bc9f855f0d1ed8adb26c77e77d473907\WindowsUpdateBox.exe]
2015-08-28 09:50:48: Reading Box header...
2015-08-28 09:50:48: CUpdateScenarioCtrl::PopulateWorkingDir: Working directory was preserved so it is already populated.
2015-08-28 09:50:48: CUpdateScenarioCtrl::GenerateBoxHash: Calculating file hash...
2015-08-28 09:50:48: CUpdateScenarioCtrl::PopulateWorkingDir: Storing file hash...
2015-08-28 09:50:48: CUpdateScenarioCtrl::PopulateWorkingDir: File hash stored!
2015-08-28 09:50:48: Searching for ESD files...
2015-08-28 09:50:48: Launching process: [C:\$Windows.~BT\Sources\SetupHost.Exe] with command-line [/PreDownload /Update /Quiet /ProcessId 10284 /progressCLSID ad20b347-38d2-4d24-a687-02a5be7ff3bf /ReportId {79199283-9EB3-441C-895C-193956626E64}.200 "/ClientId" "11149530-b21d-4d53-9ad1-f4c755be62fe"  /SuccessId a875ea48-d92d-40bf-a6e7-f008c536d754] in Session: [-1]
2015-08-28 09:50:48: Launching: [C:\$Windows.~BT\Sources\SetupHost.Exe] [/PreDownload /Update /Quiet /ProcessId 10284 /progressCLSID ad20b347-38d2-4d24-a687-02a5be7ff3bf /ReportId {79199283-9EB3-441C-895C-193956626E64}.200 "/ClientId" "11149530-b21d-4d53-9ad1-f4c755be62fe"  /SuccessId a875ea48-d92d-40bf-a6e7-f008c536d754] from [C:\$Windows.~BT\Sources]!
2015-08-28 09:50:48: Waiting for process events...
2015-08-28 09:50:48: Process exit code: [0x80070005]
2015-08-28 09:50:48: LaunchProcessInSession: Error = 0x80070005
2015-08-28 09:50:48: LaunchProcessInSession returned: [0x80070005]
2015-08-28 09:50:48: Checking cleanup registry value...
2015-08-28 09:50:48: Skipping cleanup.
2015-08-28 09:50:48: MainHr: Error = 0x80070005
2015-08-28 09:50:48: wWinMain: Error = 0x80070005

SetupHost.exe 的 Procmon 日志 https://copy.com/oPea6OO2X18G/2015-08-28_110358.jpg

相关内容