备份与恢复

DPAPI MasterKey 备份失败 - Windows Server

· 52CE 我爱测

本文提供了一种解决方案,用于解决 RWDC 不可用时发生的 DPAPI MasterKey 备份失败。 原始 KB 数: 3205778 现象 - 安装 MS14-066、KB2992611、KB3000850 或包括这些修补程序的更新后,Windows 8.1 和 Windows Server 2012 R2 中会出现以下行为。 - Windows 10 及更高版本的 Windows 中也会发生相同的行为。 首次登录到由只读域控制器(RODC)提供服务的

本文提供了一种解决方案,用于解决 RWDC 不可用时发生的 DPAPI MasterKey 备份失败。

原始 KB 数: 3205778

现象

  • 安装 MS14-066、KB2992611、KB3000850 或包括这些修补程序的更新后,Windows 8.1 和 Windows Server 2012 R2 中会出现以下行为。
  • Windows 10 及更高版本的 Windows 中也会发生相同的行为。 首次登录到由只读域控制器(RODC)提供服务的站点中的新计算机的域用户遇到以下错误和问题。

一般问题

  1. 打开凭据管理器失败并出现0x80090345错误,该错误映射到以下内容:

    十六进制 十进制 符号 友好
    0x80090345 -2146892987 SEC_E_DELEGATION_REQUIRED 无法完成请求的操作。 必须信任计算机才可以进行委托,并且必须将当前用户帐户配置为允许委托。
  2. 保存 RDP 密码失败,没有明显的错误。

  3. 密码更改所需的时间比预期的要长。

  4. 加密文件时,资源管理器会挂起。

  5. 在 Office 和 Office 365 中,在 Windows Live Mail 2012 中添加新帐户失败,出现错误0x80090345。

  6. Outlook 配置文件创建失败,并出现以下错误:

    与邮件服务器的加密连接不可用。

  7. 在“联系服务器和登录”阶段,登录到 Lync 和 Skype 会挂起或遇到长时间的延迟。

  8. SQL 服务无法在域帐户下启动,并触发以下错误:

由于找不到有效证书,而且不可能创建自签名证书,无法初始化 SSL 加密。

  1. SQL Server 安装失败,并出现以下错误:

SQL Server 安装失败。 SQL Server 安装程序遇到以下错误: 生成 XML 文档时出错。 错误代码0x84B10001。

  1. 域用户无法从 SMSS 管理 SQL 数据库。 (SQL Server Management Studio)。 当通过 SSMS DataBases -CustomerDatabase** ->>Tables** -Table 名称>导航数据库时,会出现此问题。

    如果右键单击该表,然后选择“设计**”**,则会发生以下错误:

无法完成请求的操作。 必须信任计算机才可以进行委托,并且必须将当前用户帐户配置为允许委托。 此异常源自System_Security_ni!System.Security.Cryptography.ProtectedData.Protect(Byte[], Byte[], System.Security.Cryptography.DataProtectionScope)。”

  1. ADFS WAP 安装无法创建自签名证书并触发以下错误:

异常:尝试创建代理信任证书时出错。

  1. 仅 RODC 涵盖的站点中的 ADLDS 安装失败,并出现以下错误:

键入所选服务帐户的有效用户和密码

1. 在这种情况下,AdamInstall.log显示以下内容:

adamsetup D20.10F8 0255 15:30:22.002 Enter GetServiceAccountError adamsetup D20.10F8 0256 15:30:22.002 键入所选服务帐户的有效用户名和密码。 adamsetup D20.10F8 0257 15:30:22.002 ADAMERR_SERVICE_INVALID_CREDS 2. 失败期间拍摄的示例网络跟踪显示 ADLDS 发送的密码不正确,Kerberos TGT 请求失败并KDC_ERR_PREAUTH_FAILED:

    | 源 | 目标 | 协议 | 说明 |
    | --- | --- | --- | --- |
    | ADLDS | RODC | KerberosV5 | AS Request Cname: ADLDSSvc Realm: CONTOSO Sname: krbtgt/contoso {TCP:375, IPv4:7} |
    | RODC | ADLDS | KerberosV5 | KerberosV5:KRB\_ERROR - KDC\_ERR\_PREAUTH\_FAILED (24) {TCP:376, IPv4:7} |
3. 事件 ID 4625 记录在 ADLDS 服务器的安全日志中,如下所示:

事件 ID:4625 关键字:审核失败 说明:帐户无法登录。 .. 失败信息: 失败原因:未知用户名或密码错误。 状态:0xC000006D 子状态:0xC000006A .. 进程信息: 调用方进程名称:C:\Windows\ADAM\adaminstall.exe

- 状态和子状态转换为:

    | 十六进制 | 十进制 | 符号 | 友好 |
    | --- | --- | --- | --- |
    | 0xc000006a | -1073741718 | 状态\_密码错误 | 尝试更新密码时,此返回状态指示作为当前密码提供的值不正确。 |
    | 0xc000006d | -1073741715 | 状态\_登录\_失败 | 尝试登录无效。 这是因为用户名或身份验证信息不正确。 |
- 在所有情况下,NETLOGON。LOG 显示对可写域控制器发出调用的 DsGetDcName 请求:

[MISC][3736] 名为:客户端 PID=568、Dom:VS Acct:(null) 标志:DS WRITABLE NETBIOS RET_DNS [CRITICAL][3736] NetpDcMatchResponse: CON-DC4: CONTOSO.COM.: 响应者不是可写服务器。

[MISC][2600] DsGetDcName 函数返回 1355(客户端 PID=564): Dom:VS Acct:(null) 标志:FORCE DS WRITABLE NETBIOS RET_DNS

    其中:

    | 十六进制 | 十进制 | 符号 | 友好 |
    | --- | --- | --- | --- |
    | 0x54b | 1355 | ERROR\_NO\_SUCH\_DOMAIN | 指定的域不存在,或无法访问。 |

原因

当用户首次登录计算机并首次尝试加密数据时,操作系统必须创建基于用户当前密码的首选 DPAPI MasterKey。 在创建 DPAPI MasterKey 期间,尝试通过联系 RWDC 来备份此主密钥。 如果备份失败,则无法创建 MasterKey 并返回0x80090345错误。

此失败是由KB2992611引入的新行为。 在旧版操作系统和未安装KB2992611的系统上,如果客户端在 MasterKey 备份期间无法联系 RWDC,仍允许创建主密钥,并创建本地备份。

也就是说,如果没有 RWDC 可用,旧行为将执行主密钥的本地备份。

与 RODC 不存储机密的设计简介一致,RODC 不会存储或处理 MasterKey 的备份。 因此,在没有 RWDC 可用的站点中,可能会出现“症状”部分中所述的问题。

注意

如果首选主密钥存在但已过期(密码已过期),则会尝试生成新的主密钥。 如果无法创建新主密钥的域备份,客户端会回退到旧主密钥,并且不会发生“症状”部分中描述的行为。

仅当不存在 MasterKey 且用户以前未登录到计算机时,才会出现问题。

解决方法

  1. 验证发生此问题的已加入域的工作站和服务器是否有权访问 RWDC。

    运行以下命令行以验证 RWDC 是否存在且处于正常状态:

    nltest /dsgetdc:<domain> /writable [/force]
    

    使用 NETLOGON。使用本文中提供的日志示例的 LOG 和网络跟踪来验证与 RWDC 的名称解析和连接。 若要确定是否遇到此问题,请尝试在 控制面板 中打开 CREDMAN。 如果尝试失败并出现0x80090345错误,则已验证此错误。

  2. 如果可能,请将计算机带到 RWDC 所在的站点,然后首次登录该站点。 之后,将创建 DPAPI MasterKey,并解决问题。

  3. 如果无法访问 RWDC,并且用户不会在计算机之间漫游,则可以使用以下注册表项来解决该问题。

    将此值设置为 1 会导致 DPAPI 主密钥在本地备份,而不是使用域备份。 此外,任何以前创建的密钥都不会触发对可写域控制器的调用,除非在有限的情况下,如下所述。 此注册表设置仅适用于域帐户。 本地帐户始终使用本地备份。

    路径 HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb
    设置 ProtectionPolicy (保护策略)
    数据类型 DWORD
    值 1
    请求的 OS 重启 是
    说明 操作系统

警告

如果域用户登录到多个计算机,请不要使用此注册表项! 由于密钥是在本地备份的,因此任何非本地密码更改都可能会触发使用旧密码包装所有 DPAPI 主密钥的情况,然后不可能进行域恢复。 此注册表项应仅在可接受数据丢失的环境中设置。

详细信息

主题 详细信息
Windows 数据保护 Windows 数据保护DPAPI 中的密钥备份和还原当计算机是域的成员时,DPAPI 具有一种备份机制,允许对数据进行取消保护。 生成 MasterKey 时,DPAPI 会与域控制器交谈。 域控制器具有域范围的公钥/私钥对,仅与 DPAPI 相关联。 本地 DPAPI 客户端使用相互身份验证和隐私保护的 RPC 调用从域控制器获取域控制器公钥。 客户端使用域控制器公钥加密 MasterKey。 然后,它将存储此备份 MasterKey 以及受用户密码保护的 MasterKey。 在取消保护数据时,如果 DPAPI 无法使用受用户密码保护的 MasterKey,则它通过使用相互身份验证和隐私保护的 RPC 调用将备份 MasterKey 发送到域控制器。 然后,域控制器使用其私钥解密 MasterKey,并使用相同的受保护 RPC 调用将其发送回客户端。 此受保护的 RPC 调用用于确保网络上的侦听任何人都无法获取 MasterKey。
RODC 放置注意事项 RODC 放置注意事项
更改行为/启动此问题的链接 KB。 Windows RT 8.1、Windows 8.1 和 Windows Server 2012 R2 的 2014 年 11 月更新汇总(KB3000850)
备份密钥远程协议文档 附录 B:产品行为执行机密的客户端包装BackupKey 远程协议服务器实际上不会执行机密的远程备份。 相反,服务器会包装每个机密并将其返回到客户端。 客户端负责存储机密,直到再次需要机密,此时客户端可以请求服务器解包机密请参阅 3.1.4.1.3 BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于域帐户。 本地帐户始终使用本地备份。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。