Offline Domain Join (Djoin.exe)
- Details
- Category: KB
- Published on 22/09/2012
- Hits: 14976
Djoin คืออะไร เคยใช้กันหรือเปล่าครับ ลองนึกถึงงานในวันที่กำลังวุ่นวาย Vendor ต่างเตรียมเครื่องไปให้ลูกค้า ซึ่งก็ต้องมีการ Join Domain ไปด้วย แหม่ เราก็เตรียมเครื่องไว้ตั้งนานเป็นสัปดาห์แล้ว ไปถึงหน้างานก็ต้องมานั่ง Join Domain ทีละเครื่องอีก คงรู้ใช่ไหมครับว่าถ้าเป็นเครื่อง Client จำนวนมากนี่ ไม่สนุกเลย เพราะต้องคอยมาพิมพ์ Username, Password ทีละเครื่อง แล้วก็ต้องรอ Restart อีก ผมว่าหลายคนคงเบื่อกันเป็นแน่
Djoin.exe คือการ Join Domain ในรูปแบบ Offline ซึ่งเป็นการเตรียมความพร้อมของเครื่องให้อยู่ในสภาพแวดล้อมแบบ Domain โดยที่ไม่จำเป็นต้องอยู่ภายใน Network เดียวกันขณะทำงาน ซึ่งจะทำให้เครื่อง Client นั้นเสมือนว่าเป็นสมาชิกของโดเมนนั้นแล้ว (อันที่จริงก็ไม่ใช่เสมือนหรอกครับ มันคือใช่เลยแหล่ะ) เมื่อไปถึงหน้างานจริง และเชื่อมต่อ Client นี้เข้าไปยังเครือข่าย Domain นั้น เครื่อง Client เองก็จะสามารถใช้ทรัพยากรของ Domain นั้นได้ทันที รวมถึงสามารถ Logon โดยใช้ Domain User นั้นได้ทันทีอีกด้วย ถือว่าเป็นการเตรียมงานที่ลดเวลาไปได้เยอะเลยครับ
Join Domain Offline
สมมติว่า Domain ที่ต้องการ Join นั้นคือ domain.local และเครื่อง Client มีชื่อว่า Com-Client
บนเครื่อง Active Directory ให้เปิด Command Prompt ด้วย Run as administrator
พิมพ์คำสั่ง djoin /provision /domain domain.local /machine Com-Client /savefile c:\djoin.txt
บน AD จะมีการสร้าง Computer Object เอาไว้ให้ แล้วเราจะได้ไฟล์ djoin.txt ออกมา ซึ่งถ้าเปิดไฟล์นี้ดูจะอ่านไม่ออกหรอกครับ ให้เราเก็บไฟล์นี้ไปไว้บนเครื่อง Client
บนเครื่อง Client ที่ยังไม่ได้ถูก Join Domain ให้รันคำสั่งนี้ที่ Command Prompt djoin /requestODJ /loadfile c:\djoin.txt /windowspath %SystemRoot% /localos
คราวนี้ก็ Reboot เครื่อง Client 1 รอบ ก็เตรียมใช้งานได้เลยครับ โดยสังเกตว่าตอนที่ผมรันคำสั่ง djoin บนเครื่อง Client นั้น ได้ Disable Network Card ไว้ ก็จำลองให้เหมือนกับว่าตอนนี้ไม่มีการเชื่อมต่อใด ๆ บน Network เลย ดังนั้นเมื่อ Enable Network Card ขึ้นมาแล้ว Client จะสามารถเข้าใช้ทรัพยากรบน Domain ได้ทันที
คราวนี้จะเอาไปใช้อย่างไรกับจำนวน Client ที่มีจำนวนมาก ผมมีวิธีดัดแปลงให้แบบนี้, สำหรับคำสั่ง djoin ที่ต้องรันบนเครื่อง AD นั้น เราเพิ่ม Script สำหรับวนลูปเพื่ออ่านชื่อเครื่อง Client พร้อมกับ Save Text file ออกมาเป็นชื่อเครื่อง Client พร้อมกันเลย
เริ่มจากมีไฟล์ชื่อว่า Client.txt โดยในไฟล์นี้จะมีชื่อเครื่อง Client บรรทัดละ 1 เครื่อง
จากนั้นพิมพ์คำสั่งนี้บน Command Prompt
for /F "eol=; tokens=1 delims=," %i in (c:\djoin\Client.txt) do djoin /provision /domain domain.local /machine %i /savefile c:\djoin\%i.txt
เมื่อรันคำสั่งนี้ปุ๊บ ก็จะมีการสร้าง Computer Object บน AD ตามชื่อเครื่อง Client ที่เราได้ระบุไว้ในไฟล์ Client.txt และพร้อมกันนี้ก็จะสร้างไฟล์ Com-Client1-5.txt เพื่อเอาไปใช้รันบนเครื่อง Client ด้วยเลย
คราวนี้กลับมาที่เครื่อง Client ซึ่ง Client เองจะต้องมีชื่อเครื่องคอมพิวเตอร์ที่ตรงกับชื่อไฟล์ ในตัวอย่างนี้ได้เปลี่ยนชื่อ Client ให้มี Computer Name เป็น Com-Client1 ดังนั้นเมื่อรันคำสั่ง djoin ก็จะต้องใช้ไฟล์ Client1.txt แต่เราจะเปลี่ยนคำสั่งใหม่เป็นแบบนี้
djoin /requestODJ /loadfile c:\djoin\%computername%.txt /windowspath %SystemRoot% /localos
ซึ่งตัวแปร %computername% นั้น จะทำการอ่านค่าชื่อเครื่อง Computer Name ออกมาครับ เมื่อรวมกันแล้วก็จะได้เป็น c:\djoin\Com-Client1.txt ออกมาอัตโนมัติ ดังนั้นเมื่อนำคำสั่งนี้ไปรันบน Client ทุกเครื่องเหมือนกัน มันก็จะทำการอ่านไฟล์ Text ที่แตกต่างกันไปโดยอัตโนมัติ โดยที่เราไม่ต้องเปลี่ยนตัวแปรใด ๆ เลยแม้แต่ตัวเดียว
ซึ่งเราอาจจะเอาโฟลเดอร์ djoin ไว้บน File Share ใน WorkGroup ก่อนก็ได้ครับ แล้วทำการ Browse เพื่อรัน Script Join Domain บนแต่ละเครื่อง Client ได้อย่างสบายเลย เพียงเท่านี้เมื่อเราไปถึงหน้างาน เครื่อง Client ก็พร้อมใช้แล้วครับ
←Ping |