之前因為資產管理系統出現某兩台電腦同一時間只會出現一台的狀況,在跟原廠一起找問題時發現狀況其實是商用主機原廠維修人員的不用心,但同時也意外發現某經銷商裝機時沒做SYSPREP。

為了需不需要做SYSPREP,經銷商跟客戶有不一樣的看法。我做了些測試,心得如下。



SID是什麼
SID (security identifier )是一串由不同長度數字組成的唯一識別碼,被使用在使用者帳戶、群組帳戶、電腦帳戶及服務上作為當用戶存取相關的系統資源時,系統會使用在存取權杖(Access Token)中的SID檢查該項資源的存取控制清單(ACL),並提供用戶該系統資源的適當存取權限。每個安全主體(security Principals),就是以上提到的使用者帳戶、群組帳戶、電腦帳戶及服務,在它們被建立時就會同時被分配到一個唯一的SID。

電腦或使用者的SID格式 (常見的 SID 架構)、(常見的 SID)
使用者SID範例: S-1-5-21-4197956092-2019137781-999546546-1001

由”-“分隔開的每段都有其代表的意義
S代表的是security identifier的意思
1是版本號
5是識別碼頒發機構,為1個48bit 的identifier authority value
21-4197956092-2019137781-999546546 代表網域或本機電腦識別碼,其中21是固定值,4197956092-2019137781-999546546為96bit隨機產生的值,由3個32bit 的subauthority所組成。
1001 這欄位是RID (relative identifier),1001代表這是第二個被建立的帳號,除預設內建使用者或群組外,新建使用者由1000起跳。常見的RID為administrator的500跟guest的501

如何查詢SID
透過regedit查詢登錄值裡的帳號對應SID

透過微軟免費工具psgetsid查詢SID (建議使用這個)
1. 查詢本機電腦SID:psgetsid
2. 查詢遠端主機SID:psgetsid \\hostname
3. 查詢遠端所有主機SID:psgetsid \\*
4. 在DC上查詢Domain SID:psgetsid
5. 在DC上查詢網域成員Computer Account:psgetsid hostname$

透過 powershell 查詢網域帳號SID
1. Get-ADUser -Identity 網域帳號 | FT Name,SID -Autosize

透過指令whoami /user查詢SID
1. 查詢本機電腦SID:whoami /user (去掉RID即為電腦SID)
2. 查詢現在登入帳戶SID: whoami /user

SID重複的影響
1. 網域成員不可以跟網域控制站有相同的Machine SID,這樣會造成安全性問題。
2. 在內接硬碟或外接可移除式磁碟(如USB Disk)上的NTFS權限,會因其他電腦有相同SID的群組而能夠存取。(經測試,該目錄或檔案安全性權限會變成其他電腦上有相同SID使用者或群組名稱)
3. 單靠Machine SID 來識別電腦的分佈式軟體。

Sysprep 做了什麼?
1. 產生一個新的 SID、新的 SUSClientID。
2. 啟動隨插即用硬體偵測
3. 重設產品啟用時鐘
4. 刪除組態資料檔、紀錄檔、電腦特定組態

是否一定要使用 sysprep?
1. 解決不能與第一台 Domain Controller 有相同SID的問題。
2. 避免所有電腦都擁有同一個SUSClientID。
3. 避免使用內接硬碟或外接可移除式磁碟時發生有相同SID的使用者能存取受限的檔案或目錄。
4. 解決使用BizTalk Server 時,Windows 的 MSDTC必須獲派唯一的 CID 值。

EFS解密問題,實測可行方式
使用Advanced EFS Data Recovery之類的軟體解密,必須滿足下列條件才有機會解密
1. 原有的使用者設定檔有保留
2. 機器SID不能有改變

如果機器格式化重灌,可利用原先備出的master key跟private key及簽章救回加密資料
1. 需備份master key跟private key及簽章
2. 需有可變更SID的程式
3. 需記得原帳戶密碼

簡單說,如果master key跟private key、簽章,帳戶密碼及本機電腦SID沒有保留或記錄下來就肯定沒救。


Q&A
Q1. 不做SYSPREP導致電腦SID重複,是否會造成電腦無法加入網域?
A1. 不會,加入網域時電腦會取得該網域配發的電腦帳戶SID,而這組SID跟本機電腦SID是不一樣的。電腦帳戶SID必須從網域控制站才查得到。

Q2. 工作群組裡兩台電腦上的使用者有相同的SID,如果其中一台電腦上的使用者開資料夾共享給自己,另一台上相同SID的使用者是否能直接存取該共享資料夾?
A2. 不行,因為SID只作用在本機端,所有連線到遠端資源的存取都不會用到SID,都必須使用其他的驗證方式。

Q3. 正常狀態下,誰會跟網域控制站有相同的Domain SID?
A3. 其他的網域控制站。在一台成員伺服器升級成網域控制站時,它會將自己的Domain SID改成跟原本的網域控制站一樣。但電腦帳戶SID還是不一樣。

Q4. 如果使用Windows 的EFS加密檔案後,格式化重灌系統或使用映像檔重灌系統,原本的加密檔打不開了。是否可利用相同SID的電腦及使用者將這些檔案解密?
A4. 不行。如果master key跟private key沒了,即使是相同SID的電腦及使用者也無法產生一樣的master key跟private key。

Q5. 如果要加入網域的成員伺服器跟網域控制站有一樣的本機電腦SID,能加入網域嗎?
A5. 能夠加入網域,也沒有任何錯誤訊息。此時成員伺服器的本機電腦SID和網域的SID會是一樣,但網域裡的電腦帳戶SID不一樣,不過由於成員伺服器的本機電腦SID和網域的SID一致會造成資安問題。

Q6. 電腦的SID相同,會導致WSUS裡用戶端只看得到一台嗎?
A6. 不會,WSUS認的是SUSClientID,電腦SID即使一樣也不會造成影響。


專回你的文 wrote:
之前因為資產管理系統...(恕刪)


感謝您的分享

另外小弟爬文得知, win10 複製 image 時可以不用sysprep變更SID了
每一台 join domain 的 win10 pro 會產生新的 SID。

所以做完一個 win10 pro的母片 可以deploy到很多台電腦 而不用 sysprep 先。


andrez wrote:
另外小弟爬文得知, win10 複製 image 時可以不用sysprep變更SID了
每一台 join domain 的 win10 pro 會產生新的 SID。...(恕刪)


我剛才實測的結果,Win 10 PRO 加入網域後不會變更SID。

你提到的新SID應該是我Q1中提到的 Domain computer sid
文章分享
評分
複製連結

今日熱門文章 網友點擊推薦!