共用方式為


無法將 Windows Server 2008 R2 或 Windows 7 計算機加入 Active Directory 網域

本文可協助修正用戶無法將計算機加入 Active Directory 網域的問題。

原始 KB 編號: 2008652

癥狀

您嘗試使用 [系統屬性] 底下的 [計算機名稱/網域變更],將 Windows Server 2008 R2 或 Windows 7 計算機加入 Active Directory 網域。
目的地網域有 Windows 2000、Windows Server 2003 或 Windows Server 2008 域控制器,而且可能有 Windows NT 4.0 域控制器存在。 嘗試在網域加入介面中指定完整網域名稱 (FQDN) 以將 Windows Server 2008 R2 電腦加入網域時,作業會失敗,並且您會收到錯誤:

無法連絡目標 DNS 網域<域名稱>的 Active Directory 域控制器 (AD DC)
請確保網域名稱是否已正確輸入

在客戶端的%windir%\debug\Netsetup.log中,您會看到以下的順序:

<DateTime> NetpValidateName:檢查 'CLIENT-NAME' 是否為類型 1 名稱有效
NetpCheckNetBiosNameNotInUse 函式檢查 'CLIENT-NAME'[MACHINE] 未使用的 NetBios 名稱,返回 0x0,DateTime: >。
<DateTime> NetpValidateName:名稱 'CLIENT-NAME' 適用於類別 1
<DateTime>

<DateTime> NetpValidateName:正在檢查 'CLIENT-NAME' 是否作為類型 5 名稱有效
<DateTime> NetpValidateName:名稱 'CLIENT-NAME' 適用於類型 5
<DateTime>

<DateTime>NetpValidateName:檢查 domain.com 是否為類型 3 名稱有效
<DateTime>NetpCheckDomainNameIsValid domain.com 傳回 0x54b,最後一個錯誤是 0x0
<NetpCheckDomainNameIsValid [ Exists ]>的 DateTimedomain.com傳回 0x54b

嘗試在加入網域 UI 中指定 NetBIOS 名稱,將 Windows Server 2008 R2 計算機加入網域時,您會收到不同的錯誤:

嘗試加入網域 <NetBIOS 目標網域名稱>時發生下列錯誤。 指定的網域不存在或連不上。

在客戶端的%windir%\debug\Netsetup.log中,您會看到以下的順序:

<DateTime> -----------------------------------------------------------------
<DateTime> NetpDoDomainJoin
<DateTime> NetpMachineValidToJoin:'CLIENT-NAME'
<DateTime> OS 版本:6.1
<DateTime> 組建編號:7600 (7600.win7_rtm.090713-1255)
<DateTime> SKU:Windows Server 2008 R2 Enterprise
<DateTime> NetpDomainJoinLicensingCheck: ulLicenseValue=1,Status:0x0
<DateTime> NetpGetLsaPrimaryDomain: status: 0x0
<DateTime> NetpMachineValidToJoin: status: 0x0
<DateTime> NetpJoinDomain
<DateTime> 計算機:CLIENT-NAME
<DateTime> 網域:Domain_Name
<DateTime> MachineAccountOU: (NULL)
<DateTime> 帳戶:Domain_Name\admx054085
<DateTime> 選項:0x27
<DateTime> NetpLoadParameters:載入登錄參數...
<DateTime> NetpLoadParameters:找不到 DNSNameResolutionRequired,預設為 '1' 0x2
<DateTime> NetpLoadParameters: 找不到 DomainCompatibilityMode,預設為 '0' 0x2
<DateTime> NetpLoadParameters:狀態:0x2
<DateTime> NetpValidateName:檢查 'Domain_Name' 是否作為類型 3 名稱有效
<DateTime> NetpValidateName: 'Domain_Name' 不是有效的 DNS 網域名稱:0x2554
<DateTime> NetpCheckDomainNameIsValid 檢查 'Domain_Name' [ Exists ] 傳回 0x0
<DateTime> NetpValidateName:名稱 'Domain_Name' 對於類型 3 是有效的
<DateTime> NetpDsGetDcName:嘗試在網域 'Domain_Name' 中尋找 DC,旗標:0x40001010
<DateTime>NetpDsGetDcName: 在指定的網域中找不到 DC:0x54b,最後一個錯誤是0x0
<DateTime>NetpJoinDomainOnDs: NetpDsGetDcName 傳回: 0x54b
<DateTime>NetpJoinDomainOnDs:函式結束,狀態為:0x54b
<DateTime>NetpDoDomainJoin:狀態:0x54b

通過在網域加入 UI 中指定 NetBIOS 網域名稱,Windows Server 2003 電腦成功加入相同的目標網域。 使用 FQDN 的網域加入也會失敗。
您也可以在指定 FQDN 功能變數名稱的相同樹系中,成功將相同的 Windows Server 2008 R2 計算機加入不同的 Active Directory 網域。

原因

如果在用來加入目標網域之協助程式域控制器的下列登錄子機碼中,將 NT4Emulator 設定為 0x1,就會發生錯誤:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters
數值名稱:NT4Emulator
數值類型:REG_DWORD
數值數據:1

決議

若要解決此問題,如果 Windows NT 4.0 域控制器已不存在或已淘汰,請刪除目的地網域中 Active Directory 域控制器上的 NT4Emulator 登錄值。 否則,請在 Windows 7 或 Windows Server 2008 R2 用戶端上設定下列登錄值,再嘗試加入網域:

  1. 啟動註冊表編輯器 (Regedit.exe)。

  2. 在登錄檔中找出下列機碼:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters

  3. 如果不存在,請建立名為 NeutralizeNT4Emulator 的新REG_DWORD值,並將值設定為 0x1

  4. 退出註冊表編輯器。

此登錄設定可讓 具有NT4Emulator 設定的Active Directory域控制器正常回應要求用戶端(避免 Windows NT 4.0 模擬模式)。

詳細資訊

在 FQDN 的聯結案例中,聯結用戶端無法獲得在加入網域過程開始時傳送給域控制器的 LDAP ping 的適當回應。 協助程式域控制器會回應,但加入的用戶端會將回應視為不完整。

在從使用 DNS 找到的所有域控制器收到相同的回覆後,它會改為執行 FQDN 域名的 NetBIOS 名稱查詢以尋找域控制器,然而無法取得任何回應,因此聯結操作失敗。 如果在 NetBIOS 情境中,用戶端會將 NetLogonSamRequest 傳送給從 WINS 查詢到的所有網域名稱的域控制器。 不過,它未收到適當的回應,並失敗並出現第二個錯誤。