第一部分:離線網域加入
要求
【IT專家網獨家稿件】可以在所有Windows 7和Windows Server 2008 R2中找到Djoin。使用者不需將Active Directory網域的效能等級提升至Windows Server R2,且使用者不需要使用R2網域控制器,因為djoin與先前的網域控制站版本可以相容。由於Djoin要求管理員特權,所以使用者需要在提升的命令提示字元上使用此工具。當然,使用者也需要一個有足夠權限的帳戶建立網域電腦帳戶。
兩個步驟
離線域加入一台電腦主要由兩個步驟。首先,使用者要在Active Directory中建立一個電腦帳戶。這個過程稱為服務提供(Provisioning)。最簡單的操作是在R2網域控制站上完成這個過程。 Djoin將創建一個64位元編碼的元資料團作為文字檔案。這個資料團要用於離線網域加入Windows 7電腦。
服務提供
此指令在R2網域控制器上準備了一個電腦帳戶,就像這樣:
djoin /provision /domain <domain to be joined> /machine <name of the computer to be joined> /savefile blob.txt
如果使用者不需要Windows Server 2008 R2網域控制器,那可以在Windows 7電腦上透過/downlevel參數來執行djoin.exe指令,這Windows 7應該已經成為了網域成員。
離線網域加入
使用者要在該電腦上複製要加入到網域中的bob.txt文件,並發布以下命令:
djoin /requestODJ /loadfile blob.txt /windowspath %SystemRoot% /localos
有必要使用localos參數在該電腦上執行djoin指令。在用來決定指向目標電腦系統根檔案的Windows路徑參數的電腦上,也可以執行djoin指令。如果使用者想網域加入離線虛擬機,可以使用此方法。這樣,一旦虛擬機器啟動時,就已經是一個網域成員,而不需要請求重新啟動。
在此,我們還有很多其他性能沒有談到。以下是所有djoin參數的完整列表。之後,我們將討論離線域加入如何在無人安裝情況下運行,以及在哪些情況下可以使用此功能。
命令說明:
djoin.exe [/OPTIONS]
/PROVISION – 在網域中準備一個電腦帳戶
/DOMAIN <Name> – 被加入網域的名稱
/MACHINE <Name> – 開始域的名稱
/MACHINEOU <OU> – 選擇性(OU)是建立帳戶的地方
/DCNAME <DC> – 選擇性<DC> 可鎖定帳戶創建
/REUSE – 重新使用任意已有帳戶,帳戶密碼會被重設
/SAVEFILE <FilePath> – 為<FilePath>中的檔案節約準備數據
/NOSEARCH – 跳過帳戶衝突檢查,快速請求DCNAME
/DOWNLEVEL – 支援Windows Server 2008 或更早版本網域控制站的使用
/PRINTBLOB – 傳回64位元編碼元資料團作為應答文件
/DEFPWD – 使用預設電腦帳戶密碼
/REQUESTODJ – 要求下次啟動時進行離線域加入
/LOADFILE <FilePath> – 透過/SAVEFILE預先制定<FilePath>
/WINDOWSPATH <Path> – 離線時通往Windows Directory的路徑
/LOCALOS – 允許/WINDOWSSPATH來指定本機執行的作業系統這項指令必須以本機管理員身分執行。
更改要在重啟後才能套用。
第二部分:無人狀況的離線域加入
完成第一部分的操作是一回事,而在電腦初次啟動的時候,部署大量已經成為網域成員的電腦又是另一回事。
可以在無人安裝的情況下離線域加入一台電腦。首先,使用者需要完成第一部分中的兩個步驟,例如,在網域中建立電腦帳戶以及元資料團。然後為unattend.xml加入以下部分:
<Component>
<Component name=Microsoft-Windows-UnattendedJoin>
<Identification>
<Provisioning>
<AccountData>Base64Encoded Blob</AccountData>
</Provisioning>
</Identification>
</Component>
「Base64Encoded Blob」要被blob.txt檔案的內容取代。請檢查下面的截圖,以便對元資料團有所了解。
可能用到離線域加入的情況
作者讀到離線域功能的時候,第一個想法是覺得對於那些購買了預先安裝Windows 7系統電腦的大型企業而言,這是一個極大改進。使用者只要發送一個已經網域加入電腦廠商的作業系統映像就可以了。一旦新電腦連接到該廠商網路中,他們就可以使用了,而不需要將新電腦加入到該廠商的Active Directory網域中。
不過,由於每台電腦需要不同的元資料團,所以作業系統映像本身並不能完成此操作。使用者需要先建立blob文件,然後電腦廠商必須確認每台電腦都接收到了自己的元資料團。問題在與元資料團必須包含在unattend.xml中。因此,這個過程比自動為多台電腦指定名稱要複雜一些,因為使用者不能連續指定編號或以電腦的MAC位址作為其名稱。
相反,使用者需要一個中心儲存來保存所有blob檔案以確保每台電腦都接收到了正確的unattend.xml。所以,電腦廠商要為這個過程做好準備──而這似乎還不太現實。
儘管如此,筆者希望很快會有第三方的解決方案可以解決這個問題。當然,使用者也可以為自己編寫一個方案為新安裝的電腦實現離線域加入。
小型企業當然會執行手動操作。離線網域加入的好處在於,部署新電腦的時候不需要管理員在本地執行操作;相對而言不需要帶有明確文字密碼的netdom腳本。
另一個使用離線域加入功能的情況是自動部署虛擬機器的時候。如前所述,使用者只要裝上虛擬磁碟就可以網域加入一個虛擬機器。這樣使用者可以用腳本完成大量虛擬機器的部署,而不需要再部署過程中不斷重新啟動。
總結
這項功能和新的離線域功能一樣有用,不過筆者更希望能有一個方案讓每台電腦不需要特殊的blob。這在技術上是可行的。可以在無人操作的時候加入電腦名稱。而且,一旦電腦第一次啟動,就可以在Active Directory中建立電腦帳戶。如此,就可以棄用我們在第一部分所提到的Provisioning步驟。
筆者認為,這樣的方案可改善新電腦加入Active Directory的方式。考慮到過去新的地圖技術推動了用戶購買預先安裝了Vista的電腦,似乎這樣的方案值得一試。不過,微軟在Vista遭到媒體負面宣傳後或許不會有心思做這種技術改進吧。