使用域控制器将计算机加入域时,出现"存储不足,无法完成此操作"错误消息

本文提供了在使用域控制器将计算机加入域时"没有足够的存储空间可用于完成此操作"的错误解决方法。

适用于:  WindowsServer 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 编号:   935744

症状

使用 Microsoft Windows Server 2003 或更高版本的域控制器将 Microsoft Windows XP 或更高版本客户端计算机加入域时,您可能会在客户端计算机上收到类似于以下内容的错误消息:

尝试加入域"domain_name.com"时发生以下错误:没有足够的存储来完成此操作。

此外,客户端计算机上的系统日志中可能会记录以下警告消息:

原因

出现此问题的原因是,身份验证期间生成的 Kerberos 令牌大于固定的最大大小。 在 Microsoft Windows 2000 的原始发行版中,MaxTokenSize 注册表项的默认值为 8,000 个字节。 在 Windows 2000 Service Pack 2 (SP2) 及更高版本的 Windows 中,MaxTokenSize 注册表项的默认值为 12,000 字节。

例如,如果用户是直接或另一个组的成员,则该组的安全 ID (SID) 会添加到用户令牌中。 对于要添加到用户令牌的 SID,必须使用 Kerberos 令牌来传达 SID 信息。 如果所需的 SID 信息超过令牌的大小,则身份验证不成功。

解决方案

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 若要详细了解如何备份和还原注册表,请单击以下文章编号以查看 Microsoft 知识库中的文章:
322756 如何在 Windows 中备份和还原注册表

若要解决此问题,请增加 Kerberos 令牌大小。 在记录 Kerberos 事件的客户端计算机上执行以下步骤。

  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。

  2. 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters

    备注

    如果 Parameters 键不存在,请创建该密钥。 为此,请按照下列步骤操作:

    1. 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
    2. 在“编辑”菜单上指向“新建”,然后单击“项”。
    3. 键入 Parameters ,然后按 Enter。
  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。

  4. 键入 MaxTokenSize,然后按 Enter。

  5. “编辑” 菜单上,单击 “修改”

  6. 在基本 区域中,单击 "十进制",在"值数据"框中键入65535,然后单击"确定 "。

    备注

    MaxTokenSize 注册表项的默认值是 12,000 的小数值。 建议您将此注册表项值设置为小数值 65,535。 如果错误地将此注册表项值设置为 65,535 的十六进制值,则 Kerberos 身份验证操作可能会失败。 此外,程序可能返回错误。

  7. 退出注册表编辑器。

  8. 重启计算机。

更多信息

有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

327825 当用户属于多个组时 Kerberos 身份验证问题的新解决方法