使用域控制器将计算机加入域时,“没有足够的存储可用于完成此操作”错误消息

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

原始 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

    注意

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

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

  4. 键入 MaxTokenSize,然后按 Enter。

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

  6. 基本区域中,单击“小数,在“值”数据框中键入 65535,然后单击“确定”。

    注意

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

  7. 退出注册表编辑器。

  8. 重新启动计算机。

详细信息

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

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