本文完整阅读约需 12 分钟,如时间较长请考虑收藏后慢慢阅读~

众所周知,几乎所有的微软软件都不会提供错误码和实际问题的对应表,正如微软也不会在用户手册中列举每个注册表的键值含义。本文将为读者介绍Office365在登录/激活时提示0xCAA70004错误的解决方法,希望能帮助到在绝望之中搜索到本文的,正版软件的受害者们。

0x01 问题介绍

该问题多发于公司/学校Outlook账户的登录过程中,表现如下图所示:

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页面中,找到了一些蛛丝马迹:

0x03 问题解决

如上一节图片所示,红框标注的部分是我们需要的选项,结合该文档的上下文,我们需要做的是在注册表的HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity目录中新建一个REG_DWORD键,将其命名为EnableADAL,并设定值为0,如下图所示:

需要注意的是,目录中的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,会发现登录界面从左图所示变成了右图所示(右图需要先输入邮箱地址,然后点击下一步才会出现):

在右图所示的界面中,我们输入邮箱和密码,Boom!登录成功~

P.S. 笔者在撰写本文,尝试重现部分截图时候,发现Office会出现一些奇怪的错误,如“您的组织中的其他账户已经登录此计算机”,遇到这种情况,请删除注册表中的HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity目录,然后重启电脑,打开Word(初始化默认配置),按照上文操作新建注册表键值,然后重启电脑,再打开Word,进行账号登录。

0x04 小结

作为业界毒瘤,微软的软件产品或多或少(无论开源或闭源)都有着庞杂的配置项、怪异的错误码、生硬的文案、让人无法接受的BUG和无能的技术支持,并且用户在遇到问题时往往需要采用非常规的方法来解决。

以本文为例,尽管笔者最终也不知道为什么报错,为什么可以解决,但只要打开思路,大胆猜测(微软大部分产品都可以套用这种方式,当推出一个新功能的时候,对应的旧功能大概率只是被默认隐藏),没有无法解决的问题。希望本文不仅能为读者解决这个奇怪的问题,也能给读者提供一些解决同类问题的思路。