解決服務器SID引發虛擬機不能加入AD域用戶,沒法遠程登陸的問題

最近在公司搭建AD域控制器,發現沒法在計算機真正添加域用戶,也就是添加的用戶雖然能夠在本地登陸,可是沒法遠程登陸,嘗試多種方法都沒法解決,而最終緣由竟然是虛擬機致使的服務器的SID衝突。本文記錄下該問題的發生緣由和解決過程。html

添加域帳戶

在域用戶裏面添加一個用戶,以下圖:數據庫

(圖1)windows

將用戶添加到「開發組」中去,而後讓該用戶在另一臺服務器遠程登陸:安全

(圖2)服務器

沒法登陸,甚至使用域管理員,也沒法登陸,看來必須去遠程服務器上增長一個域用戶到本地用戶組上面去:app

(圖3)框架

選擇Administrators組,點擊添加按鈕,選擇一個域用戶,而後添加,最好肯定。
用該域用戶登陸,結果仍是前面的界面,沒法登陸。
再次回到遠程服務器上,打開Administrators組,發現以前添加的域用戶沒有添加進去。
重複上面的操做,問題依舊,而且域用戶沒法添加到本地任何用戶組。運維

去羣裏面諮詢有關大牛,給了各類連接,有人說是本地安全策略問題,有人說是防火牆設置,也有人說是域控制器設置問題。
將前面的域用戶加入 Active Domain Admins組,而後再去遠程服務器登陸,問題依舊。dom

(圖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 )。

 

配置失敗的問題

在有些系統上,按照上面的方式失敗的可能性比較高,目前測試「數據中心版」 按照上面的方式是成功的,企業版,專業版都是失敗的,系統重啓後,系統出現下面的界面:

 

按照提示,修復計算機,或者按F8進入安全模式,都有可能失敗。

所以,修改SID以前,請必定先備份一個系統快照,若是出問題,請恢復快照,而後嘗試下面的方法。

 

使用 SIDCHG64 修改SID

能夠下載這個附件工具,SIDCHG64表示該程序用於64位系統,下面這篇文章有介紹:

http://www.stratesave.com/html/sidchg.html

SIDCHG (SIDCHG64 on 64-bit Windows) 2.0f is a command-line utility to modify local computer SID and computer name, for Windows 10/8.1/2012 R2/8/2012/7/2008 R2/2008/Vista/2003/XP. It replaces current computer SID with new random SID. In addition, it changes the WSUS ID for Windows Updates, the MachineGuid, the Device Identifier for modern Windows apps, and the encryption state to preserve encrypted files, Windows Action Center settings, Certificates and other encrypted stored information.

注意,須要在(管理員)命令提示行裏面執行此程序,執行後從新啓動系統。

相關文章
相關標籤/搜索