最近在公司搭建AD域控制器,發現無法在電腦真正添加域用戶,也就是添加的用戶雖然可以在本地登錄,但是無法遠程登錄,嘗試多種方法都無法解決,而最終原因居然是虛擬機導致的伺服器的SID衝突。本文記錄下該問題的發生原因和解決過程。 添加域賬戶 在域用戶裡面添加一個用戶,如下圖: (圖1) 將用戶添加到“開 ...
最近在公司搭建AD域控制器,發現無法在電腦真正添加域用戶,也就是添加的用戶雖然可以在本地登錄,但是無法遠程登錄,嘗試多種方法都無法解決,而最終原因居然是虛擬機導致的伺服器的SID衝突。本文記錄下該問題的發生原因和解決過程。
添加域賬戶
在域用戶裡面添加一個用戶,如下圖:
(圖1)
將用戶添加到“開發組”中去,然後讓該用戶在另外一臺伺服器遠程登錄:
(圖2)
無法登錄,甚至使用域管理員,也無法登錄,看來必須去遠程伺服器上增加一個域用戶到本地用戶組上面去:
(圖3)
選擇Administrators組,點擊添加按鈕,選擇一個域用戶,然後添加,最好確定。
用該域用戶登錄,結果還是前面的界面,無法登錄。
再次回到遠程伺服器上,打開Administrators組,發現之前添加的域用戶沒有添加進去。
重覆上面的操作,問題依舊,並且域用戶無法添加到本地任何用戶組。
去群裡面咨詢有關大牛,給了各種鏈接,有人說是本地安全策略問題,有人說是防火牆設置,也有人說是域控制器設置問題。
將前面的域用戶加入 Active Domain Admins組,然後再去遠程伺服器登錄,問題依舊。
(圖4)
SID衝突
最後,找到原來公司的運維同事咨詢,他告訴我,可能是SID衝突,原因是上面圖片中域用戶名後面的一串字元串:
S-1-5-21-2625116194-3287851518-1169719709-500
在命令行,輸入下麵的命令:
C:\Users\Administrator>whoami /user 用戶信息 ---------------- 用戶名 SID ================= ============================================= dxn\administrator S-1-5-21-2625116194-3287851518-1169719709-500
在域控制器伺服器上,同樣輸入上面的命令,顯示的SID值果然跟遠程伺服器是一樣的。
看來同事說的問題是真的。
那麼,《什麼是SID》呢?
搜索了下,找到如下解釋:
SID 只是安全標識符的縮寫而已。SID 的全稱是“安全標識符(Security Identify)”,是為域或本地電腦中創建的每個帳戶分配的唯一 ID 字元串(例如,S-1-5-21-1454471165-1004336348-1606980848-5555)。
Active Directory活動目錄域中每一個對象也有一個唯一標識,成為GUID。GUID=SID + RID 。活動目錄中專門有一個操作主機角色叫RID,就是為域中的每個對象分配一個RID號。最終GUID在所有域,乃至全世界都是唯一的。
實際上,電腦使用 SID 來跟蹤每個帳戶: 如果重命名管理員帳戶,電腦仍然知道哪個帳戶是管理員帳戶。 這是因為 SID 不同於名稱,它永遠不會更改。
電腦賬戶為了更高級別的安全性要求,會與一些電腦硬體信息相關聯。由於活動目錄資料庫已經不再信任電腦賬戶,認為這個電腦賬戶是不安全的,所謂的安全通道 security channel被破壞。
這就是前面為何在遠程伺服器添加域用戶不成功的原因。
配置SID
SID重覆的原因是怎麼回事呢?
這往往是系統通過克隆安裝,或者複製的虛擬機的原因,這些方式儘管安裝部署系統快速,但卻造成了現在的問題。解決方式,就是重新配置系統,生成新的SID。可以採用下麵的命令:
C:\Users\Administrator>cd \ C:\>dir c:\windows\system32\sysprep 驅動器 C 中的捲沒有標簽。 捲的序列號是 B0D1-4221 c:\windows\system32\sysprep 的目錄 2010/11/22 02:52 <DIR> . 2010/11/22 02:52 <DIR> .. 2010/11/22 02:52 <DIR> en-US 2015/12/17 12:23 <DIR> Panther 2009/07/14 09:39 128,512 sysprep.exe 2010/11/22 02:52 <DIR> zh-CN 1 個文件 128,512 位元組 5 個目錄 91,940,900,864 可用位元組 c:\windows\system32\sysprep\sysprep.exe
然後,出現下麵的配置程式界面:
(圖5)
運行sysprep.exe程式以後,系統參數全部很多都重新設置了,包括IP配置信息,系統重啟後,伺服器的IP將變成自動獲取的,並且伺服器的名字也修改了,所以如果你不能在現場操作伺服器,或者你沒有虛擬機的管理員許可權,千萬不要運行sysprep.exe程式。
(圖6)
經過稍長時間的配置,重新進入系統,將當前伺服器加入域,然後配置域用戶登錄許可權了,也就是上面的(圖3),不會在域用戶名後面跟一長串SID字元了。經過這樣的配置後,域用戶終於可以遠程登錄伺服器了。
最後,感謝你的支持看完本文(數據開發利器-SOD開源框架 http://pwmis.codeplex.com )。