Windows 無法登入 / Kerberos 用戶端從伺服器收到 KRB_AP_ERR_MODIFIED 錯誤

  近期公司的電腦及伺服器陸續會出現無法登入的情形,訊息僅是告知密碼錯誤,而大部分的電腦在重開機後便能登入,其中一台伺服器則是要登本機帳號後,重新加退網域才能登入。

 

  在檢查事件紀錄後,找到一項可能有相關的紀錄:

Kerberos 用戶端從伺服器 xxx$ 收到 KRB_AP_ERR_MODIFIED 錯誤。使用的目標名稱為 LDAP/xxx。這表示目標伺服器無法解密用戶端所提供的票證。當目標伺服器主體名稱 (SPN) 不是在與目標服務正在使用之帳戶相同的帳戶登錄時,就會發生此情形。請確定目標 SPN 僅在伺服器所使用的帳戶上登錄。當目標服務帳戶密碼與在 Kerberos 金鑰發佈中心為該目標服務設定的帳戶密碼不同時,也會發生此情形。請確定伺服器上的服務與 KDC 均設為使用相同的密碼。若伺服器名稱不是完整合格名稱,且目標網域 (xxx.COM.TW) 與用戶端網域 (xxx.COM.TW) 不同,請檢查這兩個網域中是否有同名的伺服器帳戶,或是使用完整合格名稱來識別該伺服器。

 

  上網搜尋文章後,找到「Jason的電腦健身房」的 這篇 文章,解決方式是去重設事件紀錄中所提到的問題 DC 的 administrator 密碼 (machine account password)。另外在「MIS 的背影」的 這篇 文章下方的問答有網友提到,發生這個問題環境,好像是因為 DC 從 2003 升到 2016 後才遇到,而我們也是相同環境。就該網友提供的 微軟文章 來看,簡單來說是因為 2012 R2 以後的 Windows 是使用 AES 加密方式,但 2003 不支援;而 2012 R2 也不支援舊的 DES 加密方式所造成。而該文章的最新更新有提到後來已經有釋出 hotfix 檔,不過我實際要安裝時,會出現我環境不符合的訊息,因此我仍是以指令重設密碼的方式來解決,步驟如下:

 

◎ 將目標 DC 伺服器上「Kerberos Key Distribution Center」服務的「啟動類型」改成 “手動”,接著重開機。

 

◎ 以系統管理員身分執行下列指令:

netdom resetpwd /server:DC電腦名稱 /ud:網域名稱\administrator /pd:administrator的密碼

 

◎ 再次重開機,重開完將「Kerberos Key Distribution Center」服務的「啟動類型」改成 “自動” 即可。

 

  另外,如果你的「網域功能等級」是 2003,而 User 作業系統是 Windows 8 以上,當 User 登入時出現密碼錯誤,而事件紀錄也跟上面描述的一樣,此應為兩者的版本差距過大的問題,可試著藉由提昇「網域功能等級」到 2008 以上來解決此問題。

 

【參考連結】

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.