
ในการบริหารจัดการอุปกรณ์ในองค์กร โดยเฉพาะอย่างยิ่งหากเป็นระบบปฏิบัติการ Windows สิ่งที่ขาดไม่ได้เลยคือ Active Directory ซึ่งเป็นเครื่องมือสำคัญในการจัดการผู้ใช้และกลุ่มผู้ใช้ในแต่ละแผนก รวมถึงการกำหนดสิทธิ์การเข้าถึงทรัพยากรต่างๆ ของผู้ใช้หรือคอมพิวเตอร์แต่ละเครื่องอย่างเป็นระบบ
นอกจากนั้น การใช้ Group Policy Object (GPO) ร่วมกับ Active Directory ยังช่วยให้ผู้ดูแลระบบสามารถกำหนดและบังคับใช้การตั้งค่าต่างๆ บนเครื่องคอมพิวเตอร์และบัญชีผู้ใช้ภายใต้ Domain ได้อย่างมีประสิทธิภาพ
การใช้ GPO ร่วมกับ Active Directory สามารถช่วยในการติดตั้งซอฟต์แวร์แบบอัตโนมัติ การควบคุมการตั้งค่าของระบบปฏิบัติการ การตั้งค่าความปลอดภัย และการจัดการการอัปเดตซอฟต์แวร์ ซึ่งช่วยลดภาระงาน ของ System Admin หรือ Network Admin อย่างเราๆ และเพิ่มความมั่นใจในความสม่ำเสมอของการตั้งค่าและการติดตั้งซอฟต์แวร์ในทุกเครื่องคอมพิวเตอร์ภายในองค์กร
ในบทความนี้ ผมจะมาสอนวิธีการ ติดตั้ง Software ให้แต่ละ User / Computer ภายในองค์กร โดยทำผ่าน Group Policy Object (GPO) กันครับ สามารถทำตาม เป็น Step By Step ได้เลยครับผม
สิ่งที่ต้องเตรียม (prerequisite)
1. Windows Server ที่ Promote AD แล้ว (เป็น Domain Controller)
2. Windows 10,11 หรือ รุ่นใดก็ได้ ที่ Join Domain แล้ว
3. ไฟล์ Installer .msi (ตัว Installer ต้องถูก Build มา ให้มี Argument ที่ Support กับการ Silent install เช่น /Q /S /silent เป็นต้น)
- สามารถ Search หา ว่า Software ที่เรากำลังจะ Deploy ซัพพอร์ต Silent Install หรือไม่ ได้จากเว็บไซต์ผู้ผลิต Software หรือ kb หรือ community ของ software นั้นๆ นะครับ ซึ่งโดยส่วนใหญ่แล้ว จะมีมาให้ครับ
1. คอนฟิกบน Windows Server
1.1 สร้าง Organization Units เพื่อใช้ในการ Deploy Software เป็น แต่ละ OU (แผนก) ไปนะครับ หรือถ้าทางเพื่อนๆ มี OU อยู่แล้ว ให้ข้าม Step 1.1 นี้ ไปได้เลยครับ
1.1.1 Search –> พิมพ์ Active Directory Users and Computer –> Expand ที่ Domain ที่เราต้องการ (ในที่นี้เลือกเป็น gat.local) –> คลิกขวา –> New –> Organizational Unit
1.1.2 ใส่ชื่อ แผนก หรือ section ที่เราต้องการ ในที่นี้ เลือกเป็น Sales (แผนกการขาย)
1.1.3 คลิกขวา ที่ OU ที่เราพึ่งสร้างใหม่ –> New –> User หรือจะเป็น Computer ก็ได้นะครับ แต่ในที่นี้ ขอเลือกเป็น User ครับ
1.1.4 สร้าง User กรอกรายละเอียดต่างๆให้ครบ
1.1.5 เมื่อเราสร้าง User เสร็จเรียบร้อยแล้ว ให้คลิกขวา –> Properties เพื่อเช็คดูว่า User นี้ อยู่ใน Domain ไหน ซึ่งในที่นี้ จะเป็น Domain User (เราจะใช้ Domain ในการ ให้สิทธิ์ ในการเข้าถึง Share Folder และ GPO)
* หากองค์กรไหน มีการ Specific เข้าไปอีก เพื่อความ Security โดยสร้าง Group แล้ว add user เข้าไป ก็สามารถเลือก Domain นั้น ในการ คอนฟิก Share Folder และ GPO ได้เหมือนกันครับ แต่ในกรณีนี้ เลือกเป็น Domain Users ครับ เนื่องจากมองว่า ง่ายต่อการให้ Permission มากกว่าครับ
1.2 สร้าง Share Folder และให้ Permission ในการเข้าถึง Folder เพื่อให้เครื่อง Client สามารถเข้าถึงไฟล์ที่ใช้ในการ Deploy ได้
1.2.1 สร้าง Folder บน C:/ ชื่อว่า SoftwareDeployment
1.2.2 กำหนด Permission ในการ Share Folder นี้ ให้กับ Clients โดยคลิกขวาที่ Folder ที่ต้องการจะ Share –> Properties
1.2.3 คลิกที่แถบ Sharing และคลิก Advance Sharing
1.2.4 ติ๊กที่ช่อง Sharing this folder –> ตรง Share name คือชื่อของ Folder นี้ ที่ต้องการแสดงให้เครื่อง Client ที่อยู่ใน Domain เห็น (เพื่อนๆ สามารถเปลี่ยนเป็นชื่ออื่นได้ตามใจชอบครับ แต่จาก recommended ของ microsoft บอกไว้ว่า ให้เป็นชื่อ folder เดิม แล้วเติม $ ต่อท้าย –> (หมายถึง : folder นี้ จะไม่สามารถ browse ได้ ผ่าน root path ต้องใส่ในช่อง address bar เป็น UNC Path ได้เท่านั้น ซึ่งจะเพิ่มความ Security มากขึ้น) ในที่นี้ จะใช้ตามที่ Microsoft แนะนำครับ คือ ชื่อ Folder เดิม + “$” –> SoftwareDeployment$
Limit the number of simultaneous users to คือ จำนวน limit ของ users ที่เข้าใช้งาน Folder นี้ ได้ใน session นั้นๆ (ตามปกติแล้ว ควร Set เป็นจำนวน Volume license ของ Software เราจะ Deploy หรือ set ตามจำนวน users ที่เราต้องการจะ Deploy software นี้ครับ) ในที่นี้ ผมสมมติว่ามีจำนวน User 20 เครื่อง ที่ต้องการ Program นี้ จึง Set เป็น 20 ครับ หรือจะใช้เป็นค่า Default ก็ได้ครับ ไม่ส่งผลใดๆครับผม
จากนั้น คลิกไปที่ Permission ครับ
1.2.5 ตามค่า Default จะเห็นว่า เรามี Permission ให้กับ Everyone สามารถเข้าถึง Sharing Folder นี้ได้ ซึ่งเป็นสิ่งที่ Best Practice ไม่ควรทำอย่างยิ่ง เราจะลบออก –> คลิกที่ปุ่ม Remove
1.2.6 จากนั้น คลิก Apply แล้วคลิก Add…
1.2.7 ในช่อง Enter the object name to select –> เราจะใส่เป็น Domain ของ Users ที่เราต้องการ ในที่นี้ จากข้อ 1.1.5 ของผมเป็น Domain Users –> พิมพ์ว่า Users (หรือถ้าของเพื่อนๆ เป็น Group name ที่สร้างขึ้น หรือเป็น Admin ก็สามารถพิมพ์ตามที่เราต้องการได้เลยครับ) –> คลิก Check Names เพื่อ re-check ความถูกต้องของเรา –> คลิก Ok
1.2.8 จากนั้น จะเห็นว่า Permission ที่จะเข้าถึง Share Folder นี้ได้ คือ Domain Users ซึ่งตรงกับความต้องการของเราครับ –> ติ๊กที่ช่อง Read เป็น Allow เพื่อให้สิทธิ์แค่ อ่านไฟล์ ใน Folder นี้ อย่างเดียว ก็เพียงพอต่อการ Deploy Software แล้วครับ –> คลิก Apply –> OK
1.2.9 นำไฟล์ .msi ที่ต้องการ Deploy ย้ายไปยัง Folder ที่ได้ Shared ไว้ ในที่นี้ ผมจะใช้ไฟล์เป็น 7z2407-x64.msi ครับ
1.3 สร้าง GPO เพื่อ Deploy Software
1.3.1 เปิดหน้า Server Manager –> Tools –> Group Policy Management
1.3.2 คลิกขวาที่ Group Policy Object –> New
1.3.3 ตั้งชื่อของ Object ให้เกี่ยวข้องกับงานของเรา เพื่อป้องกันความสับสน –> ในที่นี้ จะตั้งเป็น Sales Software นะครับ –> คลิก OK
1.3.4 จะเห็นว่า ใน Group Policy Objects มี Object Sales Software อยู่ ซึ่งหมายความว่า สร้างสำเร็จแล้ว
1.3.5 หน้า Group Policy Management คลิกขวาที่ OU ที่เราต้องการจะ แปะ Policy นี้ เข้าไป โดยในที่นี้ เราจะ Deploy Software ให้กับแผนก Sales –> คลิกขวาที่ OU Sales –> Link an Existing GPO…
1.3.6 เลือก Policy ที่ต้องการจะแปะ –> เลือก Sales Software –> คลิก OK
1.3.7 จะเห็นว่า มี GPO ชื่อ Sales Software แปะอยู่ใน OU Sales แล้ว
1.4 นำ Software ที่ต้องการ Deploy Add ลงไปใน GPO
1.4.1 คลิกขวาที่ GPO Sale Software –> Edit
1.4.2 Expand Configuration ของ User Configuration –> Policies –> Software Setting –> Software Installation –> New –> Package…
* ในส่วนนี้ ถ้าภายในองค์กรของเพื่อนๆ มีการใช้ Computer แทน User ก็สามารถทำวิธีเดียวกันนี้ได้ เพียงแต่ต้องไปทำที่ Computer Configuration นะครับ
1.4.3 ให้ Browse PATH ของ Share Folder (** ย้ำนะครับ ให้ใช้ Folder ที่เป็น Shared เนื่องจากเครื่อง Client จะสามารถมองเห็น software ได้) ในที่นี้ ของผมเป็น “\\ADDS01\SoftwareDeployment$” –> คลิกเลือกโปรแกรมที่เราจะ Deploy ในที่นี้ เลือกเป็น 7z2407-x64 จากนั้นคลิก Open
1.4.4 เลือก Deployment Method
- Published = ยังไม่ Install software ลงเครื่อง Clients แบบอัตโนมัติ จะลงก็ต่อเมื่อ Clients เป็นคนคลิกให้ลงเอง หรือเปิดโปรแกรมที่ต้องใช้ร่วมกันกับ Software นั้นๆ เช่น Deploy 7zip แล้วเปิดไฟล์ .zip ตัว 7zip จะ install อัตโนมัติ
- Assigned = Software จะถูก Deploy แบบ Automatic แล้วแต่ว่า OU ที่จะแปะ GPO เป็น Computer หรือ User ถ้าเป็น Computer จะต้อง Restart ก่อน เพื่อทำให้ GPO ทำงาน หรือถ้าเป็น User ต้อง Log on ก่อน ตัว GPO ถึงจะทำงาน
- Advanced = Software จะถูก Deploy ในแบบ Published หรือ Assigned ก็ได้ แต่จะเพิ่มความสามารถในการ Fill parameter บางอย่างที่ต้องใส่ ในหน้า Wizard เช่น License-Keys สามารถ Bundle ไปได้เลยในการ Deploy โดยใช้ไฟล์ Microsoft Installer Transform (.mst)
ในที่นี้ เราจะเลือกเป็น Assigned ครับ เนื่องจากอยากให้ Software Deploy ได้ทันที
1.4.5 คลิกขวาที่ Software ที่เราจะ Deploy –> Properties
1.4.6 คลิกที่แถบ Deployment –> ติ๊ก Install this application at logon เพื่อให้ Deploy Software เมื่อ User Log on –> จากนั้นคลิก OK
1.4.7 เปิด CMD –> รันคำสั่ง gpupdate /force –> เพื่อ Update GPO โดยทันที (อาจจะไม่สั่งก็ได้ แต่สั่งไปเพื่อความชัวร์ครับ)
ในฝั่งของ Windows Server ที่เป็น DC ได้ทำเสร็จสิ้นเรียบร้อย ต่อมา เรามาดูผลลัพธ์ทางฝั่งของ Clients กันครับ
2. Log on เข้าเครื่อง Clients ตาม User ที่อยู่ใน OU ที่ได้ Apply GPO ลงไป
3. เมื่อเปิดหน้าต่าง Control Panel จะเห็นโปรแกรม 7-Zip ที่เราได้ทำการ Deploy มา ผ่าน GPO เรียบร้อยแล้ว
4. เมื่อเข้าไปเช็ค Event Log จะเห็นว่า มีการ Deployment Sotware มาจริงๆ
จบไปแล้วนะครับ สำหรับบทความ การ Deploy Software ผ่าน GPO ในบทความถัดไป ผมจะมาสอนเรื่องการใช้ GPO เพื่อ Deploy Software ที่เป็น execute files (.exe) กันครับ หวังว่าบทความนี้ จะเป็นประโยชน์แก่เพื่อนๆ ไม่มาก ก็น้อยนะครับ
ขอบคุณครับผม
Ref for Trobleshooting : https://activedirectorypro.com/deploy-software-using-group-policy/#gpo-install-users