當您使用域控制器將計算機加入網域時,本文提供「沒有足夠的記憶體可用來完成這項作業」錯誤的解決方案。
原始 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 個字節。
例如,如果使用者是群組的成員,或是由另一個群組的成員資格,該群組的安全性標識碼 (SID) 就會新增至使用者的令牌。 若要將 SID 新增至使用者的令牌,必須使用 Kerberos 令牌來傳達 SID 資訊。 如果必要的 SID 資訊超過令牌的大小,驗證就會失敗。
解決方法
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為增加保護起見,請先備份登錄,再進行修改。 然後,如果發生問題,您就可以還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按一下以下文章編號來檢視 Microsoft 知識庫 文章:
322756 如何在 Windows 中備份和還原登錄
若要解決此問題,請增加 Kerberos 令牌大小。 在記錄 Kerberos 事件的用戶端電腦上遵循下列步驟。
按一下 [開始],按一下 [執行],輸入 regedit,然後按一下 [確定]。
找出並按一下下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
注意
如果參數索引鍵不存在,請建立金鑰。 若要這樣做,請遵循下列步驟:
- 找出並按一下下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
- 在 [ 編輯 ] 功能表上,指向 [ 新增],然後按兩下 [ 索引鍵]。
- 輸入參數 ,然後按 ENTER 鍵。
- 找出並按一下下列登錄子機碼:
在 [編輯] 功能表中,指向 [新增],然後按一下 [DWORD 值]。
輸入 MaxTokenSize,然後按 ENTER。
在 [ 編輯] 功能表上,按兩下 [ 修改]。
在 [基底] 區域中,按兩下 [十進位],在 [值數據] 方塊中輸入 65535,然後按兩下 [確定]。
注意
MaxTokenSize 登錄項目的預設值為 12,000 的十進位值。 建議您將此登錄項目值設定為 65,535 的十進位值。 如果您將此登錄專案值錯誤地設定為 65,535 的十六進位值,Kerberos 驗證作業可能會失敗。 此外,程式可能會傳回錯誤。
結束登錄編輯程式。
重新啟動電腦。
其他相關資訊
如需詳細資訊,請按下列文章編號,以檢視Microsoft知識庫中的文章: