網域控制站無法正常運作

本文提供網域控制站無法正常運作之問題的一般解決方案。

原始產品版本:   Windows Server 2012 R2
原始 KB 編號:   837513

徵狀

當您在 Microsoft Windows 2000 至伺服器的網域控制站或在 Windows Server 2003 的網域控制站上執行 Dcdiag 工具時,可能會收到下列錯誤訊息:

DC 診斷
執行初始設定:
[DC1]LDAP 系結失敗,錯誤31

當您在 REPADMIN /SHOWREPS 網域控制站上以本機方式執行該公用程式時,可能會收到下列其中一則錯誤訊息:

[D: \ nt \ private \ ds \ src \ util \ repadmin \ repinfo,389] LDAP 錯誤 82 (本機錯誤) 。

上次嘗試 @ yyyy-mm hh: mm 失敗,結果1753:端點映射器沒有其他可用的端點。

上次嘗試 @ yyyy-mm hh: mm 失敗,結果5:拒絕存取。

如果您使用 Active Directory 網站和服務觸發複寫,您可能會收到訊息,指出拒絕存取。

當您嘗試從受影響的網域控制站的主控台使用網路資源時(包括通用命名慣例 (UNC) 資源或對應的網路磁碟機),您可能會收到下列錯誤訊息:

沒有可用的登入伺服器 (c000005e = "STATUS_NO_LOGON_SERVERS" )

如果您從受影響的網域控制站的主控台啟動任何 Active Directory 系統管理工具(包括 Active Directory 網站和服務,以及 Active Directory 使用者和電腦),您可能會收到下列其中一則錯誤訊息:

找不到命名資訊,因為:無法取得授權以進行驗證。 請與系統管理員聯繫,以確認您的網域已正確設定,而且目前已線上。

找不到命名資訊,因為:目標帳戶名稱不正確。 請與系統管理員聯繫,以確認您的網域已正確設定,而且目前已線上。

連接至使用受影響的網域控制站以進行驗證的 Microsoft Exchange Server 電腦的 microsoft Outlook 用戶端可能會收到登入認證的提示,即使其他網域控制站的登入驗證成功也是一樣。

Netdiag 工具可能會顯示下列錯誤訊息:

DC 清單測試。 . . . . . . . . . . :失敗
注意無法呼叫 DsBind 給 <servername> 。<fqdn> (<ip address>). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]
Kerberos 測試。 . . . . . . . . . . :失敗
重大Kerberos 不具備 krbtgt/的票證 <fqdn> 。

重大Kerberos 沒有憑證 <hostname> 。
LDAP 測試。 . . . . . . . . . . . . :已傳遞
注意在 DC 上查詢 SPN 註冊失敗 <hostname><fqdn>

下列事件可能會記錄在受影響的網域控制站的系統事件記錄中:

解決方案

這兩種徵兆有數種解決方法。 以下是要嘗試的方法清單。 清單後面接著執行每個方法的步驟。 請嘗試每一種方法,直到問題解決為止。 稍後會列出說明這些現象之低一般修復程式的 Microsoft 知識庫文章。

  1. 方法1: Fix Domain Name System (DNS) 錯誤。
  2. 方法2:同步處理電腦之間的時間。
  3. 方法3:從網路使用者權限中檢查是否 存取這部電腦
  4. 方法4:確認網域控制站的 userAccountControl 屬性為532480。
  5. 方法5:修正 Kerberos 領域 (確認 PolAcDmN 登錄機碼和 PolPrDmN 登錄機碼相符) 。
  6. 方法6:重設電腦帳戶密碼,然後取得新的 Kerberos 票證。

方法1:修正 DNS 錯誤

  1. 在命令提示字元中執行 netdiag -v 命令。 這個命令會在執行命令的資料夾中建立 Netdiag 檔案。
  2. 請先解決 Netdiag 檔案中的所有 DNS 錯誤,再繼續進行。 Netdiag 工具位於 windows 2000 Server 上的 Windows 2000 Server 支援工具中 CD-ROM 或下載。
  3. 請確定已正確設定 DNS。 最常見的 DNS 錯誤之一是,將網域控制站指向網際網路服務提供者 (ISP) DNS,而非指向自身或其他支援動態更新及 SRV 記錄的 DNS 伺服器。 建議您將網域控制站指向自身或另一個支援動態更新和 SRV 記錄的 DNS 伺服器。 建議您將轉寄站設定為 ISP,以在網際網路上進行名稱解析。

如需設定 Active Directory 目錄服務之 DNS 的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
254680 DNS 命名空間規劃

方法2:同步處理電腦之間的時間

驗證網域控制站之間的時間是否正確同步。 此外,請確認用戶端電腦與網域控制站之間的時間已正確同步。

方法3:檢查 [從網路存取這部電腦] 使用者權限

修改 Gpttmpl,以確認適當的使用者已在網域控制站上, 從 [網路] 使用者許可權存取此電腦 。 若要執行此動作,請依照下列步驟執行:

  1. 針對預設的網域控制站原則,修改 Gpttmpl .inf 檔案。 根據預設,預設的網域控制站原則是定義網域控制站的使用者權限。 預設的網域控制站原則預設為 Gpttmpl .inf 檔案位於下列資料夾中。

    注意

    Sysvol 可能位於不同的位置,但 Gpttmpl .inf 檔案的路徑會相同。

    針對 Windows Server 2003 的網域控制站:

    C: \ windows \ Sysvol \ sysvol \ <Domainname> \ 原則 \ { 6AC1786C-016F-11D2-945F-00C04fB984F9} \ MACHINE \ Microsoft \ WINDOWS NT \ SecEdit \ GptTmpl .inf

    若為 Windows 2000 伺服器的網域控制站:

    C: \ winnt.sif \ sysvol \ sysvol \ <Domainname> \ 原則 \ { 6AC1786C-016F-11D2-945F-00C04fB984F9} \ MACHINE \ Microsoft \ Windows NT \ SecEdit \ GptTmpl .inf

  2. 在 SeNetworkLogonRight 專案的右側,為系統管理員、已驗證的使用者或所有人新增安全性識別碼。 請參閱下列範例。

    針對 Windows Server 2003 的網域控制站:

    SeNetworkLogonRight = * S-1-5-32-554, * s-1-5-9, * s-1-5-32-544, * s-1-1-0

    若為 Windows 2000 伺服器的網域控制站:

    SeNetworkLogonRight = * S-1-5-11, * s-1-5-32-544, * s-1-1-0

    注意

    系統管理員 (S-1-5-32-544) ,已驗證使用者 (S-1-5-11) ,每個人 (S-1-1-0) ,以及企業控制器 (S-1-5-9) 使用在所有網域中皆相同的已知安全性識別碼。

  3. 移除 SeDenyNetworkLogonRight 專案右邊的任何專案 (拒絕從網路存取這部電腦) ,以符合下列範例。

    SeDenyNetworkLogonRight =

    注意

    Windows 2000 Server 及 Windows Server 2003 的範例都是相同的。

    依預設,Windows 2000 伺服器沒有 SeDenyNetworkLogonRight 專案中的專案。 根據預設,Windows Server 2003 在 SeDenyNetworkLogonRight 專案中只有 Support_random 字串帳戶。 (Support_random 的字串帳戶是由遠端協助所使用。 ) 因為 Support_random 的字串帳戶使用不同的安全性識別碼 (每個網域中的 SID) ,所以只有透過查看 SID,帳戶才能從一般使用者帳戶輕鬆辨別。 您可能想要將 SID 複製到另一個文字檔,然後從 SeDenyNetworkLogonRight 專案中移除 SID。 如此一來,您可以在完成問題疑難排解後將其還原。

    您可以在任何原則中定義 SeNetworkLogonRight 和 SeDenyNetworkLogonRight。 如果上述步驟無法解決問題,請檢查 Sysvol 中其他原則中的 Gpttmpl 檔案,確認沒有也在此定義使用者權限。 如果 Gpttmpl .inf 檔案不包含 SeNetworkLogonRight 或 SeDenyNetworkLogonRight 的參照,則原則中未定義這些設定,而且該原則不會造成此問題。 如果這些專案確實存在,請確定它們符合預設網域控制站原則的先前所列設定。

方法4:確認網域控制站的 userAccountControl 屬性為532480

  1. 依序按一下 [開始]、[執行],然後輸入「 adsi .msc
  2. 展開 [ 網域 NC],展開 DC=domain,然後展開 [ OU = 網域控制站]。
  3. 以滑鼠右鍵按一下受影響的網域控制站,然後按一下 [ 屬性]。
  4. 在 [Windows Server 2003] 中,按一下以選取 [屬性編輯器] 索引標籤上的 [顯示必要屬性] 核取方塊和 [顯示選用屬性] 核取方塊。在 Windows 2000 伺服器中,按一下 [選取要查看的屬性] 方塊中的 [兩者]。
  5. 在 [Windows Server 2003] 中,按一下 [屬性] 方塊中的 [ userAccountControl ]。 在 [Windows 2000 Server] 中,按一下 [選取要查看的屬性] 方塊中的 [ userAccountControl ]。
  6. 如果此值不是532480,請在 [編輯屬性] 方塊中輸入 532480 ,按一下 [設定] ,按一下 [ 套用],然後按一下 [確定]
  7. 退出 ADSI 編輯器。

方法5:修正 Kerberos 領域 (確認 PolAcDmN 登錄機碼和 PolPrDmN 登錄機碼相符)

注意

此方法僅對 Windows 2000 Server 有效。

重要

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需如何備份及還原登錄的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
322756 如何在 Windows 中備份及還原登錄

  1. 啟動 登錄編輯程式
  2. 在左窗格中,展開 [ 安全性]。
  3. 在 [安全性] 功能表上,按一下 [許可權] 以授與 安全性 配置區及其子容器和物件的「系統 管理員」本機群組完全控制權
  4. 找到機 HKEY_LOCAL_MACHINE\SECURITY\Policy\PolPrDmN 碼。
  5. 在 [登錄編輯程式] 的右窗格中,按一下 [ <No Name> : REG_NONE 專案一次。
  6. 在 [ View ] 功能表上,按一下 [ 顯示二進位資料]。 在對話方塊的 [ 格式 ] 區段中,按一下 [ 位元組]。
  7. 功能變數名稱會顯示為 [ 二進位資料 ] 對話方塊右邊的字串。 功能變數名稱與 Kerberos 領域相同。
  8. 找到登錄機 HKEY_LOCAL_MACHINE\SECURITY\Policy\PolACDmN 碼。
  9. 在 [登錄編輯程式] 的右窗格中,按兩下 [ <No Name> : ] [REG_NONE] 專案。
  10. 在 [ 二進位編輯器 ] 對話方塊中,從 PolPrDmN 貼上值。 (PolPrDmN 中的值將會是) 的 NetBIOS 功能變數名稱。
  11. 重新開機網域控制站。

方法6:重設電腦帳戶密碼,然後取得新的 Kerberos 票證

  1. 停止 Kerberos 金鑰發佈中心 服務,然後將啟動值設定為 [ 手動]。

  2. 使用 Windows 2000 Server 支援工具中的 Netdom 工具,或從 Windows Server 2003 支援工具,重設網域控制站的電腦帳戶密碼:

    netdom resetpwd /server: <another domain controller> /userd:domain\administrator /passwordd: <administrator password>  
    

    確定 netdom 命令已成功地傳回完畢。 如果不是,則命令無法運作。 針對網域 Contoso (DC1 受影響的網域控制站),且 DC2 運作的網域控制站,請 netdom 從 DC1 的主控台執行下列命令:

    netdom resetpwd /server:DC2 /userd:contoso\administrator /passwordd: <administrator password>
    
  3. 重新開機受影響的網域控制站。

  4. 啟動 Kerberos 金鑰發佈中心 服務,然後將 [啟動] 設定為 [ 自動]。

如需此問題的相關資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
323542 您無法啟動 Active Directory 使用者和電腦工具,因為伺服器無法運作