[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题

众所周知,几乎所有的微软软件都不会提供错误码和实际问题的对应表,正如微软也不会在用户手册中列举每个注册表的键值含义。本文将为读者介绍Office365在登录/激活时提示 0xCAA70004错误的解决方法,希望能帮助到在绝望之中搜索到本文的,正版软件的受害者们。
本文原载于 未命名小站,由作者本人同步至SegmentFault,转载请注明原作者博客地址或本链接,谢谢!
0x01 问题介绍 该问题多发于公司/学校Outlook账户的登录过程中,表现如下图所示:
[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
文章图片

0x02 问题分析 首先,笔者按照解决网络问题的常规方式进行如下尝试,但均无法解决此问题:
  • 修改DNS
  • 接入国际互联网
  • 使用其他运营商
  • 关闭所有软件
  • 在Internet设置中启用TLS1.1和TLS1.2
  • 重装系统(是的,重装系统也无法解决问题)
搜索该错误码相关的资料,也很难得到有用的信息:
How can I fix error code: 0xCAA70004? - Microsoft Community
Word 2016 error 0xCAA70004 when attempting to sign in - Microsoft Community
Outlook Error 0xCAA70004 after updating to Windows 10 1809 - Microsoft Community
Outlook error 0xCAA70004 and Microsoft Store and Feedback Hub wont - Microsoft Community
Windows office 无法登陆学校账户,报错0xcaa70004_cugandrew的博客-CSDN博客_0xcaa70004
Outlook 2016, Office 365 - error 0xcaa70004 in Fiddler | Telerik Forums
正在笔者焦头烂额之时,笔者突然想起来上面的登录过程:
  1. 输入邮箱地址
  2. 转圈三分钟
  3. 提示0xCAA70004错误
我们可以大胆分析一下:问题是否是出现在这个转圈的过程中呢?有没有办法能让我们直接输入账号密码呢?
抱着这样的疑问,笔者搜索了一下Office force password input,在上百个网页中找到了这条Reddit帖子:Outlook 2016 force password prompt? : sysadmin
在该帖子中,有用户提到了需要关闭Modern Authentication,这是什么?笔者再搜索了一下Office Modern Authentication,找到了微软的官方知识库:Hybrid Modern Authentication overview and prerequisites for use with on-premises Skype for Business and Exchange servers - Microsoft 365 Enterprise | Microsoft Docs。根据微软官方所说,Modern Authentication能提供账号密码以外的多种认证方式(如2FA、OTP、生物验证、智能卡验证等),但我们并不需要此功能,我们只想要正常的输入密码,即只需要Basic Authentication
继续阅读该知识库,终于,我们在知识库的How modern authentication works for Office 2013 and Office 2016 client apps - Microsoft 365 Enterprise | Microsoft Docs页面中,找到了一些蛛丝马迹:
[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
文章图片

0x03 问题解决 如上一节图片所示,红框标注的部分是我们需要的选项,结合该文档的上下文,我们需要做的是在注册表的HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity目录中新建一个REG_DWORD键,将其命名为EnnableADAL,并设定值为0,如下图所示:
[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
文章图片

需要注意的是,目录中的16.0为Office 2016及以后的版本号,所有Office365版本的版本号都是16.0,但如果读者使用的是之前的版本,需要将其修改为自己的Office版本,对应关系如下表所示:
版本名称 版本号
Office 97 8.0
Office 98 8.5
Office 2000 9.0
Office 2002/XP 10.0
Office 2003 11.0
Office 2007 12.0
Office 2010 14.0
Office 2013 15.0
Office 2016 16.0
Office 2019 16.0
Office 365 / Microsoft 365 16.0
注册表修改后,重启电脑,再次打开Office,会发现登录界面从左图所示变成了右图所示(右图需要先输入邮箱地址,然后点击下一步才会出现):
[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
文章图片

在右图所示的界面中,我们输入邮箱和密码,Boom!登录成功~
[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题
文章图片

P.S. 笔者在撰写本文,尝试重现部分截图时候,发现Office会出现一些奇怪的错误,如“您的组织中的其他账户已经登录此计算机”,遇到这种情况,请删除注册表中的HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity目录,然后重启电脑,打开Word(初始化默认配置),按照上文操作新建注册表键值,然后重启电脑,再打开Word,进行账号登录。
0x04 小结 作为业界毒瘤,微软的软件产品或多或少(无论开源或闭源)都有着庞杂的配置项、怪异的错误码、生硬的文案、让人无法接受的BUG和无能的技术支持,并且用户在遇到问题时往往需要采用非常规的方法来解决。
【[小技巧]|[小技巧] 巧妙解决Office365登录/激活时报错0xCAA70004的问题】以本文为例,尽管笔者最终也不知道为什么报错,为什么可以解决,但只要打开思路,大胆猜测(微软大部分产品都可以套用这种方式,当推出一个新功能的时候,对应的旧功能大概率只是被默认隐藏),没有无法解决的问题。希望本文不仅能为读者解决这个奇怪的问题,也能给读者提供一些解决同类问题的思路。

    推荐阅读