zoukankan      html  css  js  c++  java
  • Office 2016安装失败解决方案

    Office 2016安装失败解决方案

    简介

    手贱卸载了Office 2013改装2016,然后就呵呵了,安装失败,且没有报错信息。F**k 微软。

    解决方案

    找日志

    首先在文件资源管理器,也就是文件夹的导航里输入%Temp%,然后搜索SetupExe,根据文件名查看出错时的日志,例如SetupExe(2018081612405095C).log,明显能够看到时间。
    ##报错信息
    文件末尾,你会看到

    Catalyst execution finished: 08/16/2018 12:09:12. Return code: 1603.

    这个错误代码1603,在谷歌百度上有铺天盖地的该问题解决方案,包括微软自己的网站也有各种方法,反正我试了不行。1603实际是一个通用的错误代码,我们需要在日志文件中找到底是哪里出错了。

    各种翻日志,我找到了这一段

    2018/08/16 12:04:04:963::[14144] MSI(ACTIONSTART): ‘操作 12:04:04: InstallFinalize。’
    2018/08/16 12:04:04:963::[14144] MSI(INFO): ‘操作开始 12:04:04: InstallFinalize。’
    2018/08/16 12:04:05:010::[14144] MSI(COMMONDATA): ‘消息类型: 0,参数: 0’
    2018/08/16 12:04:05:010::[14144] MSI(COMMONDATA): ‘消息类型: 1,参数: Microsoft Office Professional Plus 2016’
    2018/08/16 12:04:05:010::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: CryptRegAction。’
    2018/08/16 12:04:05:073::[14144] MSI(INFO): ‘CryptRegAction: Registering the Office Provider.’
    2018/08/16 12:04:05:088::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: MsoHtmEdSelfReg。’
    2018/08/16 12:04:05:260::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: CAPopulateSPPCache。’
    2018/08/16 12:04:05:276::[14144] MSI(INFO): ‘CAPopulateSPPCache: OMSICA : Initializing CustomAction CAPopulateSPPCache’
    2018/08/16 12:04:05:432::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: CARegisterHeartbeat。’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: ???’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: Error 0x80070001: Command line returned an error.’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: Error 0x80070001: CAQuietExec Failed’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CustomAction CARegisterHeartbeat returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘操作结束 12:04:05: InstallFinalize。返回值 3。’

    没有经验的可以尝试所有“返回值3”,英文版估计是“Return Code 3”。为什么搜这个?因为返回值3就说明操作失败了。在我的记录里,上一段之后,直接就开始回滚了,说明一定是这里出了问题。回滚的日志开头如下

    2018/08/16 12:04:05:510::[14144] MSI(COMMONDATA): ‘消息类型: 2,参数: 0’
    2018/08/16 12:04:05:526::[14144] MSI(COMMONDATA): ‘消息类型: 2,参数: 0’
    2018/08/16 12:04:05:526::[14144] MSI(COMMONDATA): ‘消息类型: 0,参数: 0’
    2018/08/16 12:04:05:526::[14144] MSI(COMMONDATA): ‘消息类型: 1,参数: Microsoft Office Professional Plus 2016’
    2018/08/16 12:04:05:526::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: Rollback。正在回退操作:’
    2018/08/16 12:04:05:526::[14144] Log level changed from: Standard to: Verbose
    2018/08/16 12:04:05:526::[14144] MSI(COMMONDATA): ‘消息类型: 2,参数: 1’
    2018/08/16 12:04:05:526::[14144] MSI(COMMONDATA): ‘消息类型: 2,参数: 0’
    2018/08/16 12:04:05:620::[14144] MSI(COMMONDATA): ‘消息类型: 0,参数: 0’
    2018/08/16 12:04:05:620::[14144] MSI(COMMONDATA): ‘消息类型: 1,参数: Microsoft Office Professional Plus 2016’
    2018/08/16 12:04:05:620::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: Rollback。正在回退操作:’

    那么错误到底是啥呢?很明显是CARegisterHeartbeat错了

    2018/08/16 12:04:05:432::[14144] MSI(ACTIONSTART): ‘操作 12:04:05: CARegisterHeartbeat。’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: ???’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: Error 0x80070001: Command line returned an error.’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CAQuietExec: Error 0x80070001: CAQuietExec Failed’
    2018/08/16 12:04:05:510::[14144] MSI(INFO): ‘CustomAction CARegisterHeartbeat returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)’

    如何解决?百度是不靠谱的,还是要在谷歌搜索。这里可以搜索CARegisterHeartbeat或者CAQuietExec。

    ##解决

    在我的这个例子里,微软自己的卸载工具https://support.office.com/zh-cn/article/%E4%BB%8E-pc-%E5%8D%B8%E8%BD%BD-office-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?ui=zh-CN&rs=zh-CN&ad=CN 用了是不好使的,但是还有用,因为大部分的东西他都会帮忙弄好。所以首先要先用对应版本的小工具把Office残留的东西清理一下,清理完记得重启系统。

    在某个帖子里发现这个Heartbeat与“计划任务”相关,在注册表里有表项。那么就查注册表。原贴:https://social.technet.microsoft.com/Forums/office/en-US/cda04233-4b97-4c0a-a873-2d61f848f903/office-2016-proplus-failed-installation?forum=Office2016setupdeploy。

    打开task schedule,任务计划程序,从左边栏中找到Microsoft/Office,如果能正常删除,那就删除,然后重启重装应该就ok,不行往下看。(这里可以按帖子里的说法,在硬盘中把计划的任务Office文件夹删了,但是我的硬盘中就没有这个文件夹,所以就没管,在"%windir%/system32/tasks"里面找)

    但是Win+R,regedit打开注册表之后,用帖子中给的"hklm/software/microsoft/windows nt/current version/Schedule/taskcache/tasks" 和"hklm/software/microsoft/windows nt/current version/Schedule/taskcache/tree"并不能正确找到注册表项,实际位置在:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCacheTree和HKEY_LOCAL_MACHINEsoftware/microsoft/windows nt/current version/Schedule/taskcache/tasks,就是需要在HKEY_LOCAL_MACHINE里面找这两个表项。

    之后就按照原贴的说法

    When I opened up the …taskcache/tree registry entry there was a subkey for “Microsoft/Office”, Inside that key, there was an ID entry that contained a GUID that pointed to a folder inside the …taskcache/tasks registry entry. So I looked for the GUID under the “…taskcache/tree/Microsoft/Office"registry entry and used that GUID to locate the correct entry in the “…taskcache/tasks” registry key. Then I delete the key that matches the GUID under the …taskcache/tasks” key and then deleted the “Microsoft/Office” entry under the …taskcache/tree" registry entry.

    在tree的子键"Microsoft/Office"中挨个点击,查看该键的ID,就是"{}"的那个值,并且在tasks里面找对应的,把对应的见删了,之后在把"Microsoft/Office"都删了。

    重启系统,安装Office,成功。

    这个错误是微软自己的清理工具没清干净,或者是本机注册表乱了,因为在注册表里能够看到相关的键,但是在task schedule中并不能看到任何计划的任务。实际上就是老版本的Heartbeat已经在注册表里存在了,清理程序又没把它删掉,导致新的版本在装自己的heartbeat时出错了(微软这个东西做的也是够了)。

    最后

    log做的还是比较详细的,每个人碰到的情况不一定一样,但是按照本文的方法一定能够找到解决方案。

  • 相关阅读:
    如何做竞品分析报告
    软件架构入门
    系统内部矛盾的解决思路
    分表分库一
    Hbase随笔2
    Hbase随笔
    vertica在电信的应用
    理解RESTful架构
    百分点刘译璟
    数据产品的简介
  • 原文地址:https://www.cnblogs.com/liangqihui/p/13821396.html
Copyright © 2011-2022 走看看