HOWTO: 分析 Windows 10 安装日志

[ 2019/07/11 13:56 | by gOxiA ]

HOWTO: 分析 Windows 10 升级安装日志

        如果你在关注 gOxiA 前几天分享的日志“HOWTO: 使用 Windows 10 安装程序 Setup.exe 执行升级验证”,那么应该已经收集到了相关的日志,我们会重点分析“MoSetup”下的“BlueBox”日志,以及“Panther”下的“setuperr”和“setupact”日志。

setuplog

        如下面截图中 BlueBox 日志记录了 0xC190010A,它表示“MOSETUP_E_UNKNOWN_CMD_LINE”,即命令行未知,排查后发现是 gOxiA 执行的 Setup.exe 命令行参数存在错误。

BlusBox_log

        当然以上的错误并不常见,只是为了本文说明,但是在遇到具体的升级故障时我们还需要分析 setuperr.log,该日志中包含了很多错误信息,但并不是所有的错误都会导致升级失败,如下图所示:

setuperr_log

        虽然包含了很多错误日志,但并不会真正影响 Windows 10 升级安装,所以我们需要查找那些会导致“Shell 应用程序请求终止”,或“由于对象的错误而放弃应用”的错误,此外 IT 人员还需要根据实际情况对 setupact.log 进行分析。这些日志通常包含四个等级的日志:Info, Warning, Error, Fatal Error;组件主要包含:CONX (Compatibility Information), MOUPG (Modern Upgrade), PANTHR, SP (Setup Platform), IBSLIB, MIG (Migration Engine), DISM, CSI, CBS。

HOWTO: 使用 Windows 10 安装程序 Setup.exe 执行升级验证

        当我们要在 Windows 7 或 Windows 8.1 系统环境上升级安装 Windows 10 时,可能会因为现有系统环境的一些兼容性问题,导致升级安装失败,这会耗费很多的时间和精力。所以,建议先使用 Windows 10 的安装程序 - Setup.exe 执行升级验证,以便在未正式升级安装 Windows 10 前进行评估,并对发生的错误进行分析和排错。

        Setup.exe 位于 Windows 10 安装源根目录下,我们可以附加一系列的命令参数执行升级验证,为此请执行如下指令:

setup.exe /auto upgrade /quiet /noreboot /dynamicupdate disable /compat scanonly

        其中 upgrade 表示以就地升级的方式来执行 Windows 10 安装;而 scanonly 则表示 Windows 安装程序通过兼容性扫描运行,然后退出并带有退出代码,以指示是否存在兼容性问题。如果返回的退出代码是 0xC1900210,则表示没有发现兼容性问题;如果发现兼容性问题将返回 0XC1900208,或其他代码。

        那么我们该如何获取退出代码呢?!最为简单的办法就是编写一个批处理脚本,执行升级验证命令行,然后输出退出代码,如下图所示:

echo_errorlevel

        在本例中,执行升级验证后得到的退出代码是“-1047526896”,其代表“0xC1900210”。如果得到的是其他异常代码则需要进行分析和排错,所以建议使用如下的命令行收集日志,当然我们也可以直接查找相关目录下产生的日志文件进行分析。

setup.exe /auto upgrade /quiet /noreboot /dynamicupdate disable /compat scanonly /copylogs c:setuplog

        命令执行完成后会在指定的目录收集相关日志,我们便可以做进一步的分析,有关如何分析日志的方法将在下次与大家分享。

Setup_Compat_Scanonly

Windows 10 Setup.exe 命令参数:https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-command-line-options

本文参考了 Michael Niehaus 的文章:“Windows 10 Pre-Upgrade Validation using SETUP.EXE

troubleshooting

Windows Update 组件重置及更新常见问题解决方法

        Microsoft 将于 2020年1月14日对 Windows 7 终止支持,虽然您的电脑还可以继续工作,但是将不再提供以下内容:

  • 任何问题的技术支持
  • 软件更新
  • 安全更新或修复

        对于 Windows 7 专业版和 Windows 7 企业版的用户,可以购买到 2023年1月为止的扩展安全更新。所以国内的很多企业还在苦苦挣扎……

        最近连发的几起安全公告使企业 IT 更加重视 Windows 更新,随之而来的是 Windows 在安装更新中所遇到的各种问题,而这些问题的根源通常还是来自日常的 IT 管理,但是今天 gOxiA 要与大家分享的不是管理方面的经验。

        当 Windows 更新发生故障问题通常可分为两类,一种是获取更新时发生问题;另一种是安装更新时发生问题。这两点在具体排错时需要注意。但通常部分问题是可以通过重置 Windows Udpate 组件来解决的,下面 gOxiA 将顺序列出重置组件以及相关问题的解决方法。

  1. 如果客户端有加入域,可重新获取组策略,可以删除客户端上组策略相关的目录:GroupPolicyUsers 和 GroupPolicy,根据实际情况还可考虑删除注册表对应键值。之后使用命令“gpupdate /force”重新更新组策略。
  2. 停止 Windows Update 服务(wuauserv),重新注册 Windows Update 相关组件。

    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

  3. 建议删除 SoftwareDistribution 目录,它位于 Windows 目录。

  4. 修复 BITS 服务,删除所有任务,为此执行“bitsadmin /reset /allusers”,然后可停止 BITS 服务(bits),重新设置服务的安全性描述符。

    sc.exe sdset bits 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)

  5. 如果怀疑网络组件异常,可执行“Netsh winsock reset”重置 WinSock。

  6. 使用“Chkdsk /f /c:” 对执行磁盘检查,并修复可能出现的逻辑错误。

  7. 执行“sfc /scannow” 对系统组件执行检查和修复,如果存在错误,应分析 CBS.log 对具体错误进行修复。

常见错误:

  • 8007FFFF,该问题需要安装服务栈更新,可参阅 KB3177467
  • 80240037,该问题通常是使用了不支持 Windows 7 的硬件导致的。
  • 80070005,典型的拒绝访问故障,可尝试关闭安全软件。
  • 80073712,系统存在组件问题,需执行“系统更新准备工具”,即 KB947821,但该工具也不是万能的,如果遇到错误,需要具体分析具体处理。

        最后,友情提示企业 IT 人员,如果未执行持续和完善的 Windows 更新管理工作,那么客户端将会出现严重的碎片化问题,gOxiA 建议企业应该尽快开始到 Windows 10 的升级工作,以减少不必要的维护成本。

分页: 49/474 第一页 上页 44 45 46 47 48 49 50 51 52 53 下页 最后页 [ 显示模式: 摘要 | 列表 ]