คู่มือปฏิบัติ Group Policy (GPO) — กลไก การยืนยันการใช้ และการเลือกระหว่าง GPO กับ Intune
· Go Komura · Windows, Group Policy, Active Directory, Intune, การจัดการพีซี, PowerShell, ระบบสารสนเทศ
“การตั้งค่านี้แจกผ่าน GPO” “พีซีของลูกค้าถูกล็อกด้วย Group Policy” — คนที่ทำงานกับระบบธุรกิจบน Windows ได้ยินคำว่า “GPO” อยู่ตลอด แต่พอถึงคราวที่ต้องรับงานสารสนเทศของสภาพแวดล้อม AD เอง หรือติดตั้งแอปบนพีซีที่เข้าร่วมโดเมนที่ลูกค้า คนที่อธิบายได้อย่างแม่นยำว่า Group Policy ถูกใช้เมื่อใด จากที่ไหน และด้วยลำดับก่อนอย่างไร มีน้อยกว่าที่คิด
“เปลี่ยนการตั้งค่าแล้วแต่ยังไม่มีผล” “ถูกบอกให้รัน gpupdate แต่ไม่รู้ว่ามันทำอะไรจริง ๆ” “แอปที่รันได้บนเครื่องพัฒนาพังที่ลูกค้า พอไล่แล้วเป็น GPO” — บทความนี้มุ่งนักพัฒนาแอปธุรกิจที่เจอฉากเหล่านี้ และเจ้าหน้าที่สารสนเทศของธุรกิจขนาดกลางและเล็กที่ได้รับช่วงการดูแล AD โดยจัด — ยึดแหล่งปฐมภูมิ ณ สิงหาคม 2026 — กลไกของ Group Policy (ลำดับการใช้ LSDOU) จังหวะที่การตั้งค่ามีผล การแยกด้วย gpresult และบันทึกเหตุการณ์, ADMX กับ Central Store และการเลือกระหว่าง GPO กับ Intune (MDM)
1. สรุปก่อนเลย
- Group Policy คือ “ตัวที่ประมวลผลทีหลังชนะ” ถูกประมวลผลตามลำดับท้องถิ่น → ไซต์ → โดเมน → OU (LSDOU) และ GPO ที่ประมวลผลทีหลังได้ลำดับก่อนเมื่อขัดแย้ง GPO ท้องถิ่น (gpedit.msc) คือชั้นที่อ่อนที่สุด1
- จังหวะการใช้คือ “เบื้องหน้าบวกพื้นหลัง” การกำหนดค่าคอมพิวเตอร์ถูกใช้เสมอตอนเริ่มระบบ และการกำหนดค่าผู้ใช้ถูกใช้เสมอตอนลงชื่อเข้าใช้ นอกจากนั้นโดยค่าเริ่มต้นมีการรีเฟรชพื้นหลังราวทุก 90 นาทีบวกออฟเซ็ตสุ่ม 0-30 นาที (5 นาทีบนตัวควบคุมโดเมน)2
- gpupdate /force คือ “ใช้การตั้งค่าทั้งหมดใหม่” ไม่ใช่ยาสารพัด การตั้งค่าบางชนิด เช่น การติดตั้งซอฟต์แวร์และการเปลี่ยนเส้นทางโฟลเดอร์ ถูกประมวลผลเฉพาะตอนลงชื่อเข้าใช้หรือรีสตาร์ต (นั่นคือเหตุผลที่มีตัวเลือก /logoff และ /boot)3
- จุดเริ่มของการแยกคือรายงาน RSoP จาก gpresult /h เห็นทั้ง GPO ที่ถูกใช้และ GPO ที่ถูกปฏิเสธพร้อมเหตุผล หากจะขุดลึกกว่านั้นใช้บันทึกปฏิบัติการ GroupPolicy (Microsoft-Windows-GroupPolicy/Operational)45
- โดยหลัก นโยบายจาก Administrative Templates ถูกเขียนไปคีย์นโยบายเฉพาะในรีจิสทรี (Software\Policies เป็นต้น) ค่า policy ได้ลำดับก่อนการตั้งค่าของแอปเอง และ Not Configured ไม่เขียนอะไรเลย อย่างไรก็ตามนโยบายบางรายการเขียนนอกคีย์เฉพาะ (หมวด 5)6
- Central Store ของ ADMX คือโฟลเดอร์ PolicyDefinitions ใน SYSVOL เมื่อสร้างแล้ว GPMC เริ่มอ้างอิงนิยามแม่แบบร่วมทั้งโดเมนจากที่นั่น7
- เลือก GPO หรือ Intune ตามฐานตัวตนของเครื่อง การกำหนดการตั้งค่าเดียวกันทั้งสองฝั่งไม่รับประกันผล Group Policy analytics ช่วยเมื่อคิดโยกย้าย89
- สำหรับนักพัฒนา GPO คือสาเหตุคลาสสิกที่แอป “พังเฉพาะที่ลูกค้า” การตั้งค่าที่เปลี่ยนข้อสมมติของแอป — นโยบายการรัน การปิดการรวมกฎท้องถิ่นของไฟร์วอลล์ การกำหนดพร็อกซีและไดรฟ์ เป็นต้น — ถูกแจกด้วยการจัดการรวมศูนย์1011
2. Group Policy คืออะไร — GPO ท้องถิ่นกับ GPO โดเมน
Group Policy คือกลไกที่ให้ผู้ดูแลกำหนดการตั้งค่า Windows รวมศูนย์แล้วบังคับใช้กับคอมพิวเตอร์และผู้ใช้เป้าหมาย ก้อนการตั้งค่าเรียกว่า GPO (Group Policy Object) GPO วางได้สองที่
| GPO ท้องถิ่น | GPO โดเมน | |
|---|---|---|
| เครื่องมือแก้ไข | gpedit.msc (Local Group Policy Editor) | GPMC (Group Policy Management Console) + Group Policy Management Editor |
| ที่เก็บ | ตัวพีซีเอง สำหรับคอมพิวเตอร์มีอันเดียว แต่ฝั่งผู้ใช้ยังสร้าง GPO ท้องถิ่นหลายชั้น (MLGPO) แยกตาม “ผู้ดูแล / ไม่ใช่ผู้ดูแล / ผู้ใช้เฉพาะ” ได้12 | Active Directory (แจกโดยลิงก์ไปไซต์ โดเมน และ OU) |
| ขอบเขต | เฉพาะพีซีนั้น | คอมพิวเตอร์/ผู้ใช้ทั้งหมดใต้ปลายทางลิงก์ |
| ลำดับก่อน | อ่อนที่สุด (ถูก GPO โดเมนเขียนทับ)1 | แข็งกว่าท้องถิ่น ระหว่าง GPO โดเมนลำดับก่อนถูกตัดสินด้วยปลายทางลิงก์และลำดับลิงก์ |
| งานที่ใช้บ่อย | การตั้งค่าเดี่ยวบนพีซีเวิร์กกรุ๊ปและเครื่องทดสอบ | การแจกและบังคับการตั้งค่ามาตรฐานขององค์กร |
พีซีเวิร์กกรุ๊ป (ไม่เข้าร่วมโดเมน) ประมวลผลเฉพาะ GPO ท้องถิ่น1 ดังนั้นในงานจริง เมื่อพูดว่าเครื่อง “ถูกจัดการด้วย GPO” เกือบเสมอหมายถึง GPO โดเมน
flowchart TB
accTitle: GPO ที่พีซีเวิร์กกรุ๊ปและพีซีที่เข้าร่วมโดเมนประมวลผล
accDescr: พีซีเวิร์กกรุ๊ปประมวลผลเฉพาะ GPO ท้องถิ่น ส่วนพีซีที่เข้าร่วมโดเมนประมวลผล GPO ท้องถิ่นบวก GPO โดเมนที่แจกจาก Active Directory
pc{"รูปแบบการเข้าร่วมของพีซี?"}
pc -->|เวิร์กกรุ๊ป| wg["ประมวลผลเฉพาะ GPO ท้องถิ่น"]
pc -->|เข้าร่วมโดเมน| dom["GPO ท้องถิ่น+โดเมน"]
dom -.-> note["GPO ในงานจริงเกือบเป็น GPO โดเมน"]
ภาพ 1: พีซีเวิร์กกรุ๊ปประมวลผลเฉพาะ GPO ท้องถิ่น ส่วนพีซีที่เข้าร่วมโดเมนประมวลผล GPO โดเมนด้วย.
เนื้อหาของ GPO ไม่ว่าอันใด แบ่งคร่าว ๆ เป็นสองสาย
- การกำหนดค่าคอมพิวเตอร์: การตั้งค่าที่มีผลกับ ทุกคน ที่ลงชื่อเข้าใช้พีซีนั้น ถูกใช้ตอนเริ่มระบบ
- การกำหนดค่าผู้ใช้: การตั้งค่าที่มีผลกับผู้ใช้นั้น ไม่ว่าจะลงชื่อเข้าใช้พีซีใด ถูกใช้ตอนลงชื่อเข้าใช้
แกน “การตั้งค่าผูกกับพีซีหรือกับคน” โผล่สม่ำเสมอทั้งในลำดับการใช้และการยืนยันว่ามีผลในบทถัดไป บางรายการมีอยู่ทั้งสองสาย ดังนั้นเมื่อตามหาการตั้งค่า ให้ฝึกดูทั้งสองสายเสมอ
flowchart TB
accTitle: สองสายในเนื้อหาของ GPO
accDescr: GPO ทุกอันมีสองสายคือการกำหนดค่าคอมพิวเตอร์และการกำหนดค่าผู้ใช้ การกำหนดค่าคอมพิวเตอร์ใช้ตอนเริ่มระบบและมีผลกับทุกคนที่ลงชื่อเข้าใช้พีซีนั้น ส่วนการกำหนดค่าผู้ใช้ใช้ตอนลงชื่อเข้าใช้และมีผลไม่ว่าผู้ใช้นั้นลงชื่อเข้าใช้พีซีใด
gpo["เนื้อหาของ GPO"] --> comp["การกำหนดค่าคอมพิวเตอร์"]
gpo --> user["การกำหนดค่าผู้ใช้"]
comp --> boot["ใช้ตอนเริ่มระบบ"]
user --> logon["ใช้ตอนลงชื่อเข้าใช้"]
boot -.-> anyone["มีผลกับทุกคนที่ลงชื่อเข้าใช้"]
logon -.-> anypc["มีผลบนพีซีใดก็ได้"]
ภาพ 2: GPO มีสองสาย คือการกำหนดค่าคอมพิวเตอร์ที่ผูกกับพีซี และการกำหนดค่าผู้ใช้ที่ผูกกับคน.
3. กลไกการใช้ — “ตัวที่ประมวลผลทีหลังชนะ” ของ LSDOU และการควบคุมการสืบทอด
3.1. LSDOU: ท้องถิ่น → ไซต์ → โดเมน → OU
บนพีซีที่เข้าร่วมโดเมน GPO ถูกประมวลผลตามลำดับนี้1
- GPO ท้องถิ่น
- GPO ที่ลิงก์กับ ไซต์
- GPO ที่ลิงก์กับ โดเมน
- GPO ที่ลิงก์กับ OU (หน่วยองค์กร) — ประมวลผลจาก OU ระดับบนลงมา และท้ายสุดประมวลผล GPO ของ OU ที่คอมพิวเตอร์/ผู้ใช้เป้าหมายสังกัดโดยตรง
เอาตัวอักษรต้นมาเรียงจึงเรียกลำดับนี้ว่า LSDOU จุดสำคัญคือ นี่ไม่ใช่ “ลำดับจากลำดับก่อนสูงสุด” แต่เป็น ลำดับที่ถูกประมวลผล เมื่อหลาย GPO กำหนดการตั้งค่าเดียวกัน ตัวที่ประมวลผลทีหลังชนะ (การตั้งค่าที่ไม่ขัดแย้งถูกรวมเข้าด้วยกัน)1 กล่าวคือ GPO ของ OU ที่ใกล้เป้าหมายที่สุดแข็งที่สุด และ GPO ท้องถิ่นอ่อนที่สุด “แก้ใน gpedit.msc แล้วมันกลับไปของเดิม” ไม่ใช่ความเสีย — เป็นพฤติกรรมตามสเปกนี้พอดี
flowchart TB
accTitle: ลำดับประมวลผล LSDOU และการชนะของตัวทีหลัง
accDescr: GPO ถูกประมวลผลตามลำดับท้องถิ่น ไซต์ โดเมน OU และเมื่อขัดแย้ง GPO ที่ประมวลผลทีหลังชนะ จึงทำให้ GPO ของ OU ที่ใกล้เป้าหมายที่สุดแข็งที่สุดและ GPO ท้องถิ่นอ่อนที่สุด
l["1. GPO ท้องถิ่น"] --> s["2. ไซต์"]
s --> d["3. โดเมน"]
d --> ou["4. OU (จากบนลงล่าง)"]
ou --> win["ขัดแย้งแล้วตัวทีหลังชนะ"]
win -.-> strongest["GPO ของ OU ใกล้เป้าหมายแข็งสุด"]
win -.-> weakest["GPO ท้องถิ่นอ่อนที่สุด"]
ภาพ 3: LSDOU คือลำดับที่ถูกประมวลผล และเมื่อการตั้งค่าเดียวกันขัดแย้ง GPO ที่ประมวลผลทีหลังชนะ.
เมื่อหลาย GPO ถูกลิงก์ไปยังไซต์ โดเมน หรือ OU เดียวกัน ลำดับก่อนระหว่างกันถูกตัดสินด้วย ลำดับลิงก์ ในแท็บ Linked Group Policy Objects ของ GPMC GPO ที่มีเลขลำดับลิงก์น้อยที่สุดถูกประมวลผลท้ายสุดและได้ลำดับก่อนสูงสุด1
flowchart TB
accTitle: ลำดับลิงก์เมื่อมีหลาย GPO ในที่เดียวกัน
accDescr: เมื่อหลาย GPO ถูกลิงก์ไปยังไซต์ โดเมน หรือ OU เดียวกัน ลำดับประมวลผลถูกกำหนดด้วยลำดับลิงก์ใน GPMC และ GPO ที่มีเลขน้อยที่สุดถูกประมวลผลสุดท้ายจึงได้ลำดับก่อนสูงสุด
multi["หลาย GPO ในที่เดียวกัน"] --> tab["ตัดสินด้วยลำดับลิงก์ของ GPMC"]
tab --> last["GPO เลขน้อยสุดถูกประมวลผลท้าย"]
last --> win["ทีหลังชนะจึงได้ลำดับก่อนสูงสุด"]
ภาพ 4: ที่ปลายทางลิงก์เดียวกัน GPO ที่เลขลำดับลิงก์น้อยที่สุดถูกประมวลผลท้ายสุดแล้วชนะ.
3.2. บล็อกการสืบทอดกับ Enforced
ลำดับเริ่มต้นสร้างข้อยกเว้นได้1
- บล็อกการสืบทอด (Block Inheritance): ตั้งบนโดเมนหรือ OU เพื่อหยุดการสืบทอด GPO จากระดับบน เป็นเครื่องมือสำหรับกรณี “OU นี้ไม่ควรรับมาตรฐานทั้งบริษัท”
- Enforced (เดิมเรียก No Override): ตั้งบนลิงก์ของ GPO ทำให้ GPO นั้น ถูกใช้เสมอ แม้ระดับล่างตั้งบล็อกการสืบทอด และไม่ถูก GPO ระดับล่างเขียนทับได้อีก เมื่อบล็อกการสืบทอดกับ Enforced ชนกัน Enforced ชนะ1
flowchart TB
accTitle: ความสัมพันธ์ของบล็อกการสืบทอดกับ Enforced
accDescr: บล็อกการสืบทอดหยุดการสืบทอด GPO จากระดับบน แต่ GPO ที่ถูก Enforced ถูกใช้เสมอแม้ระดับล่างบล็อกการสืบทอด และไม่ถูกเขียนทับโดย GPO ระดับล่าง
upper["GPO จากระดับบน"] --> blocked{"ระดับล่างบล็อกการสืบทอด?"}
blocked -->|ไม่| inherit["สืบทอดตามเดิม"]
blocked -->|ใช่| enforced{"GPO ตั้ง Enforced?"}
enforced -->|ไม่| stop["การสืบทอดหยุด"]
enforced -->|ใช่| apply["ถูกใช้เสมอ"]
apply -.-> noover["GPO ระดับล่างเขียนทับไม่ได้"]
ภาพ 5: บล็อกการสืบทอดหยุดการสืบทอดจากระดับบน แต่ GPO ที่ถูก Enforced ถูกใช้เสมอแม้ข้ามบล็อก.
Enforced คือกลไกที่ทำลายหลัก “ตัวที่ประมวลผลทีหลังชนะ” ดังนั้นหากใช้พร่ำ ผลใน RSoP จะยิ่งสวนสัญชาตญาณมากขึ้น แนวปฏิบัติคือสงวนไว้กับการตั้งค่าความปลอดภัยที่ทั้งบริษัทต้องถือตาม
3.3. การกรองความปลอดภัย
นอกจากตำแหน่งลิงก์ ยังจำกัดได้ว่า ใครถูกใช้ เป็นราย GPO GPO จะถูกใช้ได้เมื่อผู้ใช้หรือคอมพิวเตอร์เป้าหมายมี ทั้ง สิทธิ์ Read และ Apply group policy บน GPO นั้น โดยค่าเริ่มต้นทั้งสองสิทธิ์ถูกให้แก่ Authenticated Users (ซึ่งรวมทั้งผู้ใช้และคอมพิวเตอร์) จึงถูกใช้กับทุกคนใต้ปลายทางลิงก์ การจำกัดเหลือกลุ่มความปลอดภัยเฉพาะคือการกรองความปลอดภัย ตัวกรองมีผลกับ GPO ทั้งก้อน ไม่แปรผันทีละการตั้งค่าภายใน GPO ได้13
มีข้อควรระวังสำคัญข้อหนึ่ง เมื่อจำกัดขอบเขต อย่าถอด Read ออกจาก Authenticated Users ค่าเริ่มต้นด้วย ตั้งแต่การอัปเดตความปลอดภัย MS16-072 (2016) นโยบายฝั่งผู้ใช้ ถูกดึงภายใต้บริบทความปลอดภัยของคอมพิวเตอร์ ดังนั้นหากบัญชีคอมพิวเตอร์อ่าน GPO ไม่ได้ GPO ฝั่งผู้ใช้จะไม่ถูกใช้ แม้ผู้ใช้เป้าหมายมีทั้งสองสิทธิ์14 วิธีจำกัดขอบเขตที่ถูกต้องคือให้ Read + Apply group policy แก่กลุ่มเป้าหมาย และ เหลือแค่ Read บน Authenticated Users (หรือ Domain Computers)14
flowchart TB
accTitle: การตัดสินว่าตัวกรองความปลอดภัยจะใช้ GPO
accDescr: GPO ถูกใช้ได้เมื่อผู้ใช้หรือคอมพิวเตอร์เป้าหมายมีทั้งสิทธิ์อ่านและใช้ Group Policy และ GPO ฝั่งผู้ใช้ยังต้องการให้บัญชีคอมพิวเตอร์อ่านได้
target["เป้าหมายใต้ปลายทางลิงก์ของ GPO"] --> perm{"มีทั้งสิทธิ์อ่านและใช้?"}
perm -->|ไม่| deny["ถูกปฏิเสธโดยตัวกรอง"]
perm -->|ใช่| usergpo{"เป็น GPO ฝั่งผู้ใช้?"}
usergpo -->|ไม่| apply["ถูกใช้"]
usergpo -->|ใช่| comp{"คอมพิวเตอร์อ่านได้?"}
comp -->|ใช่| apply
comp -->|ไม่| deny2["ไม่ถูกใช้ (MS16-072)"]
ภาพ 6: การใช้ต้องการทั้ง Read และ Apply group policy และ GPO ฝั่งผู้ใช้ยังต้องให้บัญชีคอมพิวเตอร์อ่านได้.
ในงานจริง สองหลุมคลาสสิกคือ “ใส่กลุ่มแล้วแต่ยังไม่ถูกใช้ (เป็นการตั้งค่าฝั่งคอมพิวเตอร์ แต่ใส่แค่ผู้ใช้เข้ากลุ่ม)” และ “ถอดจากกลุ่มแล้วแต่ยังถูกใช้อยู่” กรณีหลังไม่หายแม้รอการรีเฟรชพื้นหลัง สมาชิกภาพกลุ่มถูกประเมินจาก โทเค็นความปลอดภัยที่สร้างตอนลงชื่อเข้าใช้ ดังนั้นการเปลี่ยนกลุ่มของผู้ใช้ถึงตัวกรองได้หลังลงชื่อออกแล้วลงชื่อเข้าใช้ใหม่ และการเปลี่ยนกลุ่มของคอมพิวเตอร์ถึงได้หลังรีสตาร์ต — เมื่อมีโทเค็นใหม่แล้ว
flowchart TB
accTitle: จนกว่าการเปลี่ยนกลุ่มจะสะท้อนในตัวกรอง
accDescr: สมาชิกภาพกลุ่มถูกประเมินจากโทเค็นความปลอดภัยที่สร้างตอนลงชื่อเข้าใช้ ดังนั้นการเปลี่ยนฝั่งผู้ใช้ต้องลงชื่อเข้าใช้ใหม่ และการเปลี่ยนฝั่งคอมพิวเตอร์ต้องรีสตาร์ต จึงจะได้โทเค็นใหม่แล้วสะท้อนในตัวกรอง
change["เปลี่ยนสมาชิกของกลุ่ม"] --> old["โทเค็นเก่าแล้วยังไม่สะท้อน"]
old --> u["ผู้ใช้ต้องลงชื่อเข้าใช้ใหม่"]
old --> c["คอมพิวเตอร์ต้องรีสตาร์ต"]
u --> token["ประเมินด้วยโทเค็นใหม่"]
c --> token
token --> ok["สะท้อนในตัวกรอง"]
old -.-> bg["รีเฟรชพื้นหลังไม่แก้"]
ภาพ 7: การเปลี่ยนกลุ่มสะท้อนในตัวกรองได้เมื่อมีโทเค็นใหม่จากการลงชื่อออก/เข้า หรือจากการรีสตาร์ต.
ยังมีโหมดพิเศษชื่อ การประมวลผลลูปแบ็ก (loopback processing) สำหรับฉากอย่างพีซีใช้ร่วมหรือเซิร์ฟเวอร์เดสก์ท็อประยะไกล ที่ต้องการให้ ใครลงชื่อเข้าใช้พีซีนั้นได้รับการกำหนดค่าผู้ใช้ที่ถูกแทนที่ (กลไกที่ใช้การตั้งค่าผู้ใช้ตามที่ตั้งของคอมพิวเตอร์ มีโหมด Replace กับ Merge)15 เป็นฟีเจอร์ขั้นสูงที่ใช้กับเครื่องคีออสก์และพีซีห้องเรียน ดังนั้นบทความนี้ขอแค่บอกว่ามันมีอยู่
flowchart TB
accTitle: แนวคิดของการประมวลผลลูปแบ็ก
accDescr: การประมวลผลลูปแบ็กเป็นโหมดพิเศษที่ใช้การกำหนดค่าผู้ใช้ตามที่ตั้งของคอมพิวเตอร์ มีสองโหมดคือแทนที่และรวม และใช้กับพีซีใช้ร่วมหรือคีออสก์ที่ต้องการให้ทุกคนที่ลงชื่อเข้าใช้ได้รับค่าผู้ใช้ชุดเดียวกัน
shared["พีซีใช้ร่วม คีออสก์ ฯลฯ"] --> lb["การประมวลผลลูปแบ็ก"]
lb --> base["ตัดสินตามที่ตั้งของคอมพิวเตอร์"]
base --> rep["โหมดแทนที่"]
base --> mrg["โหมดรวม"]
lb -.-> aim["มีผลกับทุกคนที่ลงชื่อเข้าใช้"]
ภาพ 8: การประมวลผลลูปแบ็กเป็นโหมดพิเศษที่ใช้การกำหนดค่าผู้ใช้ตามที่ตั้งของคอมพิวเตอร์ มีโหมดแทนที่กับโหมดรวม.
4. เมื่อใดจึงมีผล — การประมวลผลเบื้องหน้ากับการรีเฟรชพื้นหลัง
ครึ่งหนึ่งของ “กำหนดแล้วแต่ยังไม่มีผล” คือแค่ จังหวะการใช้ยังไม่ถึง การใช้มีสองชนิด2
| ชนิด | จังหวะ | ขอบเขต |
|---|---|---|
| การประมวลผลเบื้องหน้า | การกำหนดค่าคอมพิวเตอร์: ตอนเริ่มระบบ / การกำหนดค่าผู้ใช้: ตอนลงชื่อเข้าใช้ | ทุกการตั้งค่า |
| การรีเฟรชพื้นหลัง | โดยค่าเริ่มต้น ราวทุก 90 นาทีบวกออฟเซ็ตสุ่ม 0-30 นาที (เลื่อนเพื่อไม่ให้ทุกเครื่องดึงพร้อมกัน) | เฉพาะการตั้งค่าที่รองรับการประมวลผลพื้นหลัง |
| การรีเฟรชพื้นหลัง (ตัวควบคุมโดเมน) | โดยค่าเริ่มต้น ทุก 5 นาที | เช่นเดียวกับด้านบน |
กล่าวคือ สำหรับ เครื่องที่ทำงานอยู่และถึงตัวควบคุมโดเมนได้ การตั้งค่าที่รองรับการรีเฟรชพื้นหลังจะกระจายภายในราวสองชั่วโมงหลังเปลี่ยน GPO โดยไม่ต้องทำอะไรเพิ่ม เครื่องออฟไลน์ หรือแล็ปท็อปที่พกออกโดยไม่ต่อ VPN จะไม่ได้รับจนกว่าจะถึง DC ครั้งถัดไป การตั้งค่าที่ใช้ได้เฉพาะการประมวลผลเบื้องหน้ายังต้องรอเริ่มระบบหรือลงชื่อเข้าใช้อีก หากเร่งด่วน ให้รัน gpupdate บนพีซีเป้าหมาย โดยค่าเริ่มต้นใช้เฉพาะ การตั้งค่าที่เปลี่ยน การเติม /force ใช้การตั้งค่าทั้งหมดใหม่ โดยไม่สนว่าเปลี่ยนหรือไม่3
rem อัปเดตเฉพาะการตั้งค่าที่เปลี่ยน (โดยปกติพอ)
gpupdate
rem ใช้การตั้งค่าทั้งหมดใหม่ (เมื่อสงสัยสถานะที่แคชไว้)
gpupdate /force
flowchart TB
accTitle: การถึง DC ได้หรือไม่และวิธีที่การตั้งค่าไปถึง
accDescr: เครื่องที่ทำงานอยู่และถึงตัวควบคุมโดเมนได้จะได้รับการตั้งค่าที่รองรับการรีเฟรชพื้นหลังภายในราวสองชั่วโมง แต่พีซีออฟไลน์หรือพกออกโดยไม่ต่อ VPN จะไม่ได้รับจนกว่าจะถึง DC ครั้งถัดไป
pc{"ถึง DC ได้?"}
pc -->|ใช่| ok["ไปถึงในราวสองชั่วโมง"]
pc -->|ไม่| ng["ไม่ถึงจนกว่าจะเชื่อมได้"]
ng -.-> ex["พีซีออฟไลน์หรือไม่ต่อ VPN"]
ภาพ 9: เครื่องที่ทำงานอยู่และถึง DC ได้กระจายการตั้งค่าในราวสองชั่วโมง แต่เครื่องออฟไลน์ไม่ได้รับจนกว่าจะถึง DC ครั้งถัดไป.
สิ่งที่ต้องระวังคือ มีการตั้งค่าที่ gpupdate ทำให้มีผลไม่ได้ การติดตั้งซอฟต์แวร์ฝั่งผู้ใช้และการเปลี่ยนเส้นทางโฟลเดอร์ถูกประมวลผลเฉพาะ ตอนลงชื่อเข้าใช้ และการติดตั้งซอฟต์แวร์ฝั่งคอมพิวเตอร์ถูกประมวลผลเฉพาะ ตอนเริ่มระบบ gpupdate จึงมีตัวเลือก /logoff (ลงชื่อออกหลังอัปเดต) และ /boot (รีสตาร์ตหลังอัปเดต) สำหรับกรณีนี้พอดี3 ก่อนจะบ่นว่า “รัน gpupdate /force แล้วยังไม่เข้า” ให้ตรวจก่อนว่าการตั้งค่านั้นเป็นชนิดที่ต้องรีสตาร์ตหรือลงชื่อเข้าใช้หรือไม่
flowchart TB
accTitle: เส้นทางที่การตั้งค่าถูกใช้
accDescr: การเปลี่ยน GPO หากรองรับการรีเฟรชพื้นหลังจะถึงภายในค่าเริ่มต้นราว 90 นาทีบวกออฟเซ็ต 0 ถึง 30 นาที การตั้งค่าที่ใช้ได้เฉพาะการประมวลผลเบื้องหน้าต้องรอเริ่มระบบหรือลงชื่อเข้าใช้ และ gpupdate เมื่อเร่งด่วนก็ยังต้องการ /logoff หรือ /boot สำหรับการตั้งค่าเบื้องหน้า
change["เปลี่ยน GPO"] --> kind{"รองรับรีเฟรชพื้นหลัง?"}
kind -->|ใช่| bg["อัปเดตในราว 90 นาที+0-30 นาที"]
kind -->|ไม่| fg["ใช้ตอนเริ่มระบบหรือลงชื่อเข้าใช้"]
bg --> done["ถูกใช้"]
fg --> done
rush["กรณีเร่งด่วน"] -.-> upd["รัน gpupdate"]
upd -.-> force["/force เพื่อใช้ใหม่ทั้งหมด"]
upd -.-> reboot["เบื้องหน้าใช้ /logoff หรือ /boot"]
ภาพ 10: การรีเฟรชพื้นหลังส่งได้เฉพาะการตั้งค่าที่รองรับ ส่วนการตั้งค่าที่ใช้ได้เฉพาะเบื้องหน้า หลัง gpupdate ยังต้องลงชื่อออกหรือรีสตาร์ต.
5. การแยกเมื่อการตั้งค่าไม่ถูกใช้ — gpresult บันทึกเหตุการณ์ และรีจิสทรี
5.1. ยืนยัน RSoP ด้วย gpresult /h
gpresult คือเครื่องมือมาตรฐานสำหรับดู ผลสุดท้าย (RSoP: Resultant Set of Policy) เมื่อหลาย GPO ทับกัน การสร้างรายงาน HTML จากพรอมต์คำสั่งที่ยกระดับอ่านง่ายที่สุด45
rem รายงาน HTML ของ RSoP ทั้งผู้ใช้และคอมพิวเตอร์
gpresult /h C:\temp\gp-report.html /f
rem เมื่อต้องการดูแค่สรุปในคอนโซล
gpresult /r
gpresult /scope computer /r
สามอย่างที่ควรถามจากรายงานก่อนคือ
- รายการ GPO ที่ถูกใช้ — มี GPO ที่ต้องการอยู่หรือไม่
- รายการ GPO ที่ถูกปฏิเสธพร้อมเหตุผล — เหตุผลที่ไม่ถูกใช้ เช่น การกรองความปลอดภัย ตัวกรอง WMI หรือ GPO ว่าง แสดงที่นี่5
- Winning GPO ของแต่ละการตั้งค่า — ค่าของการตั้งค่าที่ต้องการมาจาก GPO ใด หาก GPO อื่นชนะ ให้กลับไปทบทวนกฎลำดับก่อนในหมวด 3
flowchart TB
accTitle: สามจุดที่ดูก่อนในรายงาน RSoP
accDescr: ในรายงาน gpresult ให้ดูก่อนว่ารายการ GPO ที่ถูกใช้มี GPO ที่ต้องการหรือไม่ จากนั้นดูรายการ GPO ที่ถูกปฏิเสธพร้อมเหตุผล สุดท้ายระบุว่า GPO ใดชนะใน GPO ที่ได้ลำดับก่อนของการตั้งค่าแต่ละรายการ
rep["เปิดรายงาน RSoP"] --> one["1. รายการ GPO ที่ถูกใช้"]
one --> two["2. GPO ที่ถูกปฏิเสธและเหตุผล"]
two --> three["3. GPO ที่ได้ลำดับก่อนต่อการตั้งค่า"]
three -.-> review["ถ้า GPO อื่นชนะ ให้ทบทวน"]
ภาพ 11: รายงาน RSoP ดูตามลำดับ GPO ที่ถูกใช้ GPO ที่ถูกปฏิเสธพร้อมเหตุผล แล้ว Winning GPO ของแต่ละการตั้งค่า.
5.2. บันทึกปฏิบัติการ GroupPolicy
เมื่อ gpresult ยังไม่พอ — เช่น การประมวลผลล้มตั้งแต่ต้น หรือใช้เวลานานเกินไป — ให้ดู บันทึกปฏิบัติการ GroupPolicy ใน Event Viewer อยู่ที่ Applications and Services Logs > Microsoft > Windows > GroupPolicy > Operational (ชื่อบันทึก Microsoft-Windows-GroupPolicy/Operational) ที่นี่บันทึกช่วงการประมวลผลนโยบายตั้งแต่เริ่มถึงจบ พร้อมรายการ GPO ที่ถูกใช้และรายการ GPO ที่ถูกปฏิเสธ (พร้อมเหตุผล) การประมวลผลนโยบายแต่ละรอบถูกกำหนด ActivityID ไม่ซ้ำ ดังนั้นขั้นตอนที่ Microsoft แนะนำคือเก็บ ActivityID จากเหตุการณ์คำเตือนหรือข้อผิดพลาดในบันทึก System แล้วใช้มุมมองกำหนดเองกรองเหลือเฉพาะรอบนั้น5
flowchart TB
accTitle: ขั้นตอนการกรองบันทึกปฏิบัติการ GroupPolicy
accDescr: บันทึกปฏิบัติการ GroupPolicy กำหนด ActivityID ไม่ซ้ำต่อการประมวลผลนโยบายหนึ่งรอบ จึงเก็บ ActivityID จากคำเตือนหรือข้อผิดพลาดในบันทึก System แล้วกรองด้วยมุมมองกำหนดเองให้อ่านเฉพาะเหตุการณ์ของรอบนั้น
sys["คำเตือนหรือข้อผิดพลาดใน System"] --> aid["เก็บ ActivityID"]
aid --> cv["กรองด้วยมุมมองกำหนดเอง"]
cv --> one["อ่านเหตุการณ์ของรอบเดียว"]
one -.-> rec["รายการใช้และปฏิเสธพร้อมเหตุผล"]
ภาพ 12: บันทึกปฏิบัติการเก็บ ActivityID จากบันทึก System แล้วกรองด้วยมุมมองกำหนดเองให้อ่านเฉพาะการประมวลผลนโยบายหนึ่งรอบ.
5.3. ความสัมพันธ์กับคีย์ Policies ในรีจิสทรี
นโยบายจาก Administrative Templates (หมวดถัดไป) สุดท้ายถูกเขียนเป็นค่ารีจิสทรี โดยหลักถูกเขียนไป คีย์นโยบายเฉพาะ ต่อไปนี้6
HKEY_LOCAL_MACHINE\Software\Policies(การกำหนดค่าคอมพิวเตอร์ ที่ที่แนะนำ)HKEY_CURRENT_USER\Software\Policies(การกำหนดค่าผู้ใช้ ที่ที่แนะนำ)HKLM\Software\Microsoft\Windows\CurrentVersion\Policies/HKCU\Software\Microsoft\Windows\CurrentVersion\Policies
มีแนวคิดออกแบบสำคัญตรงนี้ แอปที่รองรับนโยบายทำงานโดย อ่านคีย์ Policies ก่อน หากมีค่าก็ให้ค่านั้นได้ลำดับก่อน หากไม่มีจึงถอยไปใช้การตั้งค่าของตนเอง (preference) หรือค่าเริ่มต้น นโยบาย Not Configured ไม่เขียนอะไรลงรีจิสทรีเลย6 กล่าวคือ นโยบายจาก Administrative Templates ไม่ได้เขียนทับการตั้งค่าของแอปแล้วทิ้ง “tattoo” ไว้ แต่เป็นกลไกที่ ค่าบังคับที่วางคนละที่ถูกอ้างอิงเป็นหลัก พอหยุดกำหนดนโยบาย แอปกลับไปเชื่อค่าการตั้งค่าของตนเอง
flowchart TB
accTitle: ลำดับก่อนระหว่างค่า policy กับการตั้งค่าแอป
accDescr: แอปที่รองรับนโยบายอ่านคีย์ Policies ก่อน หากมีค่าก็ใช้ค่านั้นเป็นหลัก หากไม่มีก็ใช้การตั้งค่าของตนเองหรือค่าเริ่มต้น และนโยบายที่ไม่ได้กำหนดค่าไม่เขียนอะไรลงรีจิสทรี
app["แอปที่รองรับนโยบายอ่านการตั้งค่า"] --> haspol{"มีค่าในคีย์ Policies?"}
haspol -->|ใช่| pol["ให้ค่า policy ได้ลำดับก่อน"]
haspol -->|ไม่| pref["ใช้การตั้งค่าตนเองหรือค่าเริ่มต้น"]
notconf["นโยบายที่ไม่ได้กำหนดค่า"] -.-> nowrite["ไม่เขียนอะไรลงรีจิสทรี"]
ภาพ 13: นโยบายไม่ได้เขียนทับการตั้งค่าของแอปเอง แต่เป็นกลไกที่ค่าบังคับที่วางคนละที่ถูกอ้างอิงเป็นหลัก.
อย่างไรก็ตาม ไม่ใช่นโยบายทุกอันที่เขียนไปคีย์เฉพาะ การตั้งค่าที่ฝังใน OS บางรายการ (เช่น Enable Win32 long paths เขียนไป LongPathsEnabled ใต้ HKLM\SYSTEM\CurrentControlSet\Control\FileSystem) รวมแม่แบบรุ่นเก่าหรือของบุคคลที่สาม เขียนไปพาธใดก็ได้ที่อยู่นอกคีย์เฉพาะ สำหรับการตั้งค่าแบบนี้ ค่ายังอยู่แม้หยุดกำหนดนโยบาย ดูว่าการตั้งค่าหนึ่งเขียนไปคีย์ใดจริงจากนิยาม ADMX ข้อความอธิบายของการตั้งค่า หรือรายงาน gpresult
พูดกลับกัน การออกแบบที่สุภาพด้านบนใช้ได้เฉพาะในกรอบ Administrative Templates (คีย์นโยบายเฉพาะ) ค่าที่สคริปต์หรือ Group Policy Preferences เขียน นอก คีย์ Policies มีพฤติกรรมเหมือนค่ารีจิสทรีธรรมดา และกรอบนี้ไม่มีกลไกคืนค่าอัตโนมัติเมื่อหยุดแจก ในงานแยก ทางที่เร็วและชัวร์คือดูตรง ๆ ว่าการตั้งค่าที่ต้องการถูกเขียนใต้คีย์ Policies หรือไม่
# ตัวอย่างการตรวจค่าที่นโยบายแจกจ่ายโดยตรง (นโยบายส่วนใหญ่ถูกเขียนใต้ Policies)
Get-ChildItem "HKLM:\SOFTWARE\Policies" -Recurse | Select-Object Name
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -ErrorAction SilentlyContinue
flowchart TB
accTitle: ขั้นตอนแยกเมื่อการตั้งค่าไม่ถูกใช้
accDescr: เริ่มจากยืนยัน GPO ที่ถูกใช้และที่ถูกปฏิเสธด้วยรายงาน RSoP ของ gpresult หากยังไม่พอให้กรองบันทึกปฏิบัติการ GroupPolicy ด้วย ActivityID และตรวจค่าจริงที่ถูกแจกโดยตรงที่คีย์ Policies ในรีจิสทรี
start["การตั้งค่าไม่ถูกใช้"] --> rsop["ยืนยัน RSoP ด้วย gpresult /h"]
rsop --> found{"รู้เหตุผลของการใช้และปฏิเสธ?"}
found -->|ใช่| fix["ทบทวนลำดับก่อนหรือตัวกรอง"]
found -->|ไม่| oplog["ดูบันทึกปฏิบัติการ GroupPolicy"]
oplog -.-> aid["กรองหนึ่งรอบด้วย ActivityID"]
rsop -.-> reg["ตรวจค่าจริงที่คีย์ Policies โดยตรง"]
ภาพ 14: การแยกเริ่มจาก gpresult /h หากยังไม่พอใช้บันทึกปฏิบัติการ GroupPolicy และตรวจค่าจริงที่คีย์ Policies โดยตรง.
6. Administrative Templates (ADMX) กับ Central Store
นิยามของรายการตั้งค่าที่เรียงใต้ Administrative Templates ใน GPMC ถูกเขียนเป็น ไฟล์ ADMX (ตัวนิยาม) บวก ไฟล์ ADML (สตริงแสดงผลตามภาษา) พีซีทุกเครื่องมีนิยามที่มากับ OS ใต้ C:\Windows\PolicyDefinitions และเครื่องมือจัดการโหลดเหล่านี้มาประกอบหน้าจอการตั้งค่า7
หากดำเนินงานในโดเมน ทางพื้นฐานคือสร้าง Central Store สร้างโฟลเดอร์ PolicyDefinitions ใต้ SYSVOL ของตัวควบคุมโดเมน (เช่น \\contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions) แล้วเนื้อหาถูกจำลองไปทุกตัวควบคุมโดเมนในโดเมน เครื่องมือ Group Policy จากนั้น อ้างอิง Central Store โดยค่าเริ่มต้น7 นี่ตัดปัญหา “เวอร์ชันแม่แบบต่างกันทีละเครื่องจัดการ รายการที่เห็นไม่ตรงกัน” ไฟล์ ADML ไปโฟลเดอร์ย่อยตามภาษา (th-TH สำหรับภาษาไทย)7
flowchart TB
accTitle: กลไกของ Central Store
accDescr: เมื่อสร้างโฟลเดอร์ PolicyDefinitions ใต้ SYSVOL ของตัวควบคุมโดเมน เนื้อหาถูกจำลองไปทุกตัวควบคุมโดเมน และเครื่องมือ Group Policy อ้างอิง Central Store โดยค่าเริ่มต้น จึงไม่มีความต่างของนิยามระหว่างเครื่องจัดการ
create["สร้างใต้ SYSVOL"] --> cs["PolicyDefinitions"]
cs --> repl["ถูกจำลองไปทุก DC"]
cs --> ref["เครื่องมือ GP อ้างอิงโดยค่าเริ่มต้น"]
ref -.-> benefit["ความต่างของนิยามต่อเครื่องหาย"]
cs -.-> adml["ADML ไปโฟลเดอร์ตามภาษา"]
ภาพ 15: PolicyDefinitions ใน SYSVOL ถูกจำลองไปทุกตัวควบคุมโดเมน และเครื่องมือ Group Policy อ้างอิงโดยค่าเริ่มต้น.
ข้อควรระวังด้านการดำเนินงานมีสองข้อ ข้อแรก Microsoft แจก ADMX ใหม่ตามเวอร์ชัน Windows และการอัปเดตคือการสลับฝั่ง Central Store การแทนที่ C:\Windows\PolicyDefinitions บนพีซีทีละเครื่องด้วยชุดที่ดาวน์โหลดไม่ถูกรองรับ7 ข้อสอง เมื่ออัปเดต Central Store ที่มีอยู่ คำแนะนำคืออย่าเขียนทับ PolicyDefinitions ของจริงโดยตรง แต่รวบรวมชุด ADMX ทั้งของ OS และของแอปอย่าง Office กับ Edge ใน โฟลเดอร์งานที่ตั้งชื่อตามเวอร์ชัน เช่น PolicyDefinitions-24H2 เปลี่ยนชื่อโฟลเดอร์ปัจจุบันไปข้างเป็นเช่น PolicyDefinitions-23H2 แล้ว เปลี่ยนชื่อโฟลเดอร์งานเป็น PolicyDefinitions เพื่อขึ้นของจริง7 เครื่องมือ Group Policy อ้างอิงเฉพาะโฟลเดอร์ที่ชื่อตรง ๆ ว่า PolicyDefinitions ดังนั้นการวางไฟล์ในโฟลเดอร์ชื่อเวอร์ชันอย่างเดียวไม่มีผล ข้อดีของวิธีนี้คือหากมีปัญหา คุณกลับไปโฟลเดอร์ที่ถอยไว้ได้7
flowchart TB
accTitle: ขั้นตอนอัปเดต Central Store
accDescr: การอัปเดตรวบรวมชุด ADMX ของ OS และแอปในโฟลเดอร์งานที่ตั้งชื่อตามเวอร์ชัน เปลี่ยนชื่อโฟลเดอร์ปัจจุบันเพื่อถอยออก แล้วเปลี่ยนชื่อโฟลเดอร์งานเป็นชื่อจริง PolicyDefinitions หากมีปัญหาให้กลับไปโฟลเดอร์เก่าที่ถอยไว้
work["โฟลเดอร์งานที่ตั้งชื่อตามเวอร์ชัน"] --> gather["รวบรวมชุด OS และแอป"]
gather --> evac["เปลี่ยนชื่อปัจจุบันเพื่อถอย"]
evac --> rename["เปลี่ยนชื่อโฟลเดอร์งานเป็นชื่อจริง"]
rename --> live["ถูกอ้างอิงเป็นของจริง"]
live -.-> back["มีปัญหาให้กลับไปโฟลเดอร์เก่า"]
ภาพ 16: การอัปเดตรวบรวมชุดในโฟลเดอร์งาน ถอยของปัจจุบัน แล้วเปลี่ยนชื่อขึ้นของจริง.
7. GPO กับ Intune (MDM/CSP) กับการแจกด้วยมือหรือสคริปต์ — ตารางตัดสิน
ทางเลือกการจัดการการกำหนดค่าเครื่อง Windows วันนี้ไม่เหลือแค่ GPO MDM ที่ Intune เป็นตัวแทนกำหนดการตั้งค่า OS ผ่านกลไกชื่อ CSP (Configuration Service Provider) นี่คือตารางตัดสินว่าจะยึดทางใดเป็นหลัก
| มุม | GPO โดเมน | Intune (MDM/CSP) | การแจกด้วยมือหรือสคริปต์ |
|---|---|---|---|
| ข้อกำหนด | เข้าร่วมโดเมน AD + การเชื่อมต่อไปตัวควบคุมโดเมน | สิทธิ์ Intune + เครื่องลงทะเบียน Intune (เข้าร่วม Entra / ไฮบริด รวมเครื่องที่ลงทะเบียน Entra อย่าง BYOD ตามวิธีลงทะเบียน) | ไม่มี (นั่นคือเหตุที่ไม่มีธรรมาภิบาลด้วย) |
| การถึงเครื่องนอกสำนักงานหรือทำงานที่บ้าน | ไม่อัปเดตหากถึง DC ผ่าน VPN หรือคล้ายกันไม่ได้ | ถึงได้ผ่านอินเทอร์เน็ต | ขึ้นกับแรงมือ |
| ความละเอียด/ความครอบคลุมของการตั้งค่า | กว้างที่สุด (Administrative Templates + การตั้งค่าความปลอดภัย + สคริปต์ เป็นต้น) | กำลังขยาย แต่ยังไม่เทียบเท่าชุดการตั้งค่า GPO ทั้งก้อน9 | เท่าที่เขียน |
| การบังคับ | บังคับในฐานะนโยบาย (คีย์ Policies ได้ลำดับก่อน)6 | บังคับในฐานะนโยบาย (CSP) | ไม่คืนเมื่อผู้ใช้เปลี่ยน |
| ทางยืนยันการใช้ | gpresult / บันทึกปฏิบัติการ GroupPolicy45 | รายงานในศูนย์ผู้ดูแล Intune | สร้างกลไกเอง |
| เหมาะกับ | เครื่องที่ยึด AD ในองค์กรและประจำ LAN ภายใน | เครื่องที่ยึดคลาวด์ นอกสถานที่ หลายสาขา | เครื่องไม่กี่เครื่อง หรือเป็นส่วนเสริมวิธีอื่น |
แกนตัดสินเรียบ: ฐานตัวตนของเครื่อง (AD หรือ Microsoft Entra) และเครื่องอยู่ที่ไหน GPO ชัวร์ที่สุดสำหรับฝูงพีซีประจำสำนักงานที่เข้าร่วม AD ในองค์กรเต็มที่ ส่วนพีซีมือถือที่เข้าร่วม Entra GPO ไม่ถึงเลย
ในความเป็นจริง ธุรกิจขนาดกลางและเล็กส่วนใหญ่อยู่ตรงกลาง คือชุด ไฮบริด (เข้าร่วมโดเมนบวกลงทะเบียน Intune) และสิ่งที่แย่ที่สุดตรงนี้คือ “กำหนดการตั้งค่าเดียวกันทั้งผ่าน GPO และ MDM” Policy CSP มีนโยบายชื่อ MDMWinsOverGP ที่ให้ MDM ชนะเมื่อ GPO กับ MDM ขัดแย้ง แต่ขอบเขตจำกัดอยู่ที่นโยบายที่สอดคล้องภายใน Policy CSP เอง Microsoft ระบุชัดว่าการกำหนดการตั้งค้านอกการควบคุมนั้นทั้งผ่าน GPO และ MDM ทำให้เกิด สภาพแข่งขันโดยไม่รับประกันว่าฝ่ายใดชนะ และควรเลี่ยงการกำหนดคู่8 หลักข้อแรกของการดำเนินงานไฮบริดคือตัดสินทีละขอบเขตการตั้งค่าว่า “อันนี้ GPO อันนี้ Intune” แล้วดึงหน่วยงานจัดการไปฝั่งเดียว
flowchart TB
accTitle: การเลือกระหว่าง GPO กับ Intune
accDescr: หากฐานตัวตนของเครื่องเป็น AD ในองค์กรและประจำสำนักงาน GPO เหมาะ หากเข้าร่วม Entra หรืออยู่นอกสำนักงาน Intune เหมาะ และในไฮบริดให้หลีกเลี่ยงการกำหนดคู่ของการตั้งค่าเดียวกันแล้วดึงหน่วยงานจัดการไปฝั่งเดียวต่อขอบเขตการตั้งค่า
q{"ฐานและที่อยู่ของเครื่องคือ?"}
q -->|เข้าร่วม AD และประจำสำนักงาน| gpo["GPO ชัวร์และละเอียดกว่า"]
q -->|เข้าร่วม Entra หรือนอกสำนักงาน| intune["Intune ถึงนอกสำนักงานได้"]
q -->|ไฮบริด| split["ดึงไปฝั่งเดียวต่อขอบเขต"]
split -.-> warn["กำหนดคู่ไม่รับประกันผล"]
split -.-> ana["จัดด้วย Group Policy analytics"]
ภาพ 17: การเลือกยึดฐานตัวตนและที่อยู่ของเครื่อง และในไฮบริดอย่ากำหนดการตั้งค่าเดียวกันทั้ง GPO และ MDM.
เมื่อถึงขั้นคิดโยกย้ายจาก GPO ไป Intune Group Policy analytics ของ Intune คือทางเข้า นำเข้า GPO ที่ส่งออกจาก GPMC (XML) แล้วจะวิเคราะห์ว่าการตั้งค่าแต่ละรายการรองรับ MDM หรือไม่รองรับ/ถูกเลิกใช้ การตั้งค่าที่รองรับโยกย้ายไปนโยบาย Settings catalog ของ Intune ได้9 มองเป็นเครื่องมือสำหรับ “จัดว่าอะไรย้ายได้ อะไรย้ายไม่ได้ อะไรควรทิ้ง” ดีกว่า “ย้ายทั้งหมด” หน่วยงานจัดการ Windows Update ก็กำลังถูกจัดใหม่ในบริบทเดียวกัน — ดูเพิ่มที่ “การจัดการ Windows Update หลังการเลิก WSUS”
flowchart TB
accTitle: การจัดด้วย Group Policy analytics
accDescr: เมื่อนำเข้า GPO ที่ส่งออกจาก GPMC เป็น XML เข้า Group Policy analytics จะจัดได้ว่าการตั้งค่าแต่ละรายการรองรับ MDM หรือเลิกใช้หรือทำไม่ได้ และการตั้งค่าที่รองรับแล้วโยกย้ายไปนโยบาย Settings catalog ได้
exp["ส่งออก XML จาก GPMC"] --> imp["นำเข้า analytics"]
imp --> ana["วิเคราะห์สถานะรองรับต่อการตั้งค่า"]
ana --> ok["รองรับ MDM แล้ว"]
ana --> dep["เลิกใช้หรือทำไม่ได้"]
ok --> mig["โยกย้ายไปนโยบาย Settings catalog"]
ภาพ 18: Group Policy analytics นำเข้า GPO ที่ส่งออก แล้วจัดว่าการตั้งค่าใดย้ายไป MDM ได้และใดย้ายไม่ได้.
8. กับดักจากมุมนักพัฒนา — GPO ของลูกค้าเปลี่ยนพฤติกรรมแอป
สุดท้าย สิ่งที่ควรรู้หากรับงานพัฒนาตามสัญญา GPO ของลูกค้าเขียนข้อสมมติของแอปอย่างเงียบ ๆ คู่กับไฟร์วอลล์และซอฟต์แวร์ป้องกันไวรัส GPO เป็นผู้ต้องสงสัยประจำของ “รันได้บนเครื่องพัฒนาแต่พังที่ลูกค้า” ตัวอย่างที่เป็นรูปธรรมมีดังนี้
- นโยบายการรันของ PowerShell: นโยบายการรันกำหนดรวมศูนย์ด้วย GPO ได้ และขอบเขต MachinePolicy/UserPolicy ที่มาจาก GPO ได้ลำดับก่อนเสมอ กว่าค่าที่ตั้งท้องถิ่นหรือบนโพรเซส10 หากตัวติดตั้งหรือสคริปต์ปฏิบัติงานถูกสร้างบนข้อสมมติว่า “เติม -ExecutionPolicy Bypass แล้วต้องรันได้” ภายใต้การจัดการ GPO มันจะไม่แม้แต่เริ่ม รายละเอียดดู “นโยบายการรัน PowerShell และการลงนามสคริปต์ — คู่มือปฏิบัติเพื่อเลิกปิดด้วย Bypass”
- การปิดการรวมกฎท้องถิ่นของไฟร์วอลล์: ในสภาพแวดล้อมที่ไฟร์วอลล์ถูกจัดการรวมศูนย์ด้วย GPO/Intune สามารถปิด “การรวมกฎท้องถิ่น” (AllowLocalPolicyMerge) ทีละโปรไฟล์ได้ ที่ที่ถูกปิด กฎขาเข้าที่ตัวติดตั้งลงทะเบียนท้องถิ่น มีอยู่แต่ไม่ถูกใช้11 นี่คือจุดที่ต้องยืนยันก่อนติดตั้งแอปแบบเซิร์ฟเวอร์ และถูกกล่าวถึงละเอียดใน “ไฟร์วอลล์ Windows กับแอปธุรกิจ”
- การกำหนดสภาพแวดล้อมอย่างแมปไดรฟ์และพร็อกซี: การแมปไดรฟ์เครือข่าย เครื่องพิมพ์ และคล้ายกัน มักถูกแจกผ่าน Group Policy Preferences16 ข้อสมมติเรื่องสภาพแวดล้อม — “ควรมีไดรฟ์ Z” “พร็อกซีควรเป็นเชื่อมตรง” — พังได้ตามผู้ใช้ที่ลงชื่อเข้าใช้หรือ OU ที่พีซีสังกัด สำหรับแอปแบบประจำเครื่อง ยังง่ายที่จะมองข้ามว่าการตั้งค่าที่แจกด้วยการกำหนดค่าผู้ใช้ ย่อมไม่ใช้กับบัญชีที่บริการหรืองานตามตารางรัน
- การตั้งค่า “เปลี่ยนคืนไม่ได้” ตั้งแต่ต้น: การตั้งค่าที่มาจาก Administrative Templates โดยปกติผู้ใช้เปลี่ยนผ่านหน้าจอไม่ได้ (รายการเป็นสีเทา) ความจริงที่ว่า “ให้ลูกค้าเปลี่ยนการตั้งค่าแล้วจะหาย” ใช้ไม่ได้ มีผลต่อการออกแบบแนวทางรับเรื่อง
flowchart TB
accTitle: ข้อสมมติของแอปที่ GPO ของลูกค้าเปลี่ยน
accDescr: GPO ของลูกค้าเปลี่ยนข้อสมมติของแอปในรูปการบังคับนโยบายการรัน การปิดการรวมกฎท้องถิ่นของไฟร์วอลล์ การแจกไดรฟ์หรือพร็อกซี และสถานะที่ผู้ใช้เปลี่ยนการตั้งค่าคืนไม่ได้ และเป็นสาเหตุหนึ่งที่ทำงานไม่ได้เฉพาะที่ลูกค้า
gpo["GPO ของลูกค้า"] --> ep["บังคับนโยบายการรัน"]
gpo --> fw["ปิดการรวมกฎท้องถิ่น"]
gpo --> env["แจกไดรฟ์และพร็อกซี"]
gpo --> lock["เปลี่ยนการตั้งค่าคืนไม่ได้"]
ep --> sym["สาเหตุหนึ่งที่พังเฉพาะที่ลูกค้า"]
fw --> sym
env --> sym
lock --> sym
ภาพ 19: GPO ของลูกค้าเขียนข้อสมมติของแอปอย่างเงียบ ๆ ทั้งนโยบายการรัน ไฟร์วอลล์ และการกำหนดสภาพแวดล้อม.
การเตรียมที่เป็นจริงฝั่งพัฒนามีสามอย่าง ข้อแรก จัดทำเอกสารเป็นข้อกำหนดการติดตั้ง สำหรับข้อสมมติสภาพแวดล้อมที่แอปพึ่ง — นโยบายการรัน พอร์ตรอรับ ที่เขียน พร็อกซี เป็นต้น — แล้วขอให้ฝ่ายสารสนเทศของลูกค้ายืนยันก่อนติดตั้ง ข้อสอง เมื่อมีปัญหา ให้ตรวจรายงาน gpresult /h และค่าจริงใต้ HKLM\Software\Policies แทนการเดา (หมวด 5) ข้อสาม แยกตั้งแต่ขั้นออกแบบว่าการทำงานใดต้องใช้สิทธิ์ผู้ดูแล และใดไม่ต้อง (เส้นนี้ถูกขีดใน “เมื่อใดที่จริง ๆ แล้วต้องใช้สิทธิ์ผู้ดูแลบน Windows — UAC พื้นที่ที่ถูกป้องกัน และวิธีดูตั้งแต่ขั้นออกแบบ”) GPO ไม่ใช่ศัตรู — มันคือสเปกของสภาพแวดล้อม ถือเป็นสเปก การแยกก็เป็นเครื่องกล
flowchart TB
accTitle: สามการเตรียมฝั่งพัฒนา
accDescr: การเตรียมฝั่งพัฒนาคือจัดทำเอกสารข้อสมมติสภาพแวดล้อมที่แอปพึ่งเป็นข้อกำหนดการติดตั้งแล้วขอให้ฝ่ายสารสนเทศของลูกค้ายืนยันก่อนติดตั้ง เมื่อมีปัญหาให้ตรวจรายงาน gpresult และค่าจริงที่คีย์ Policies และแยกตั้งแต่ขั้นออกแบบว่าการทำงานใดต้องใช้สิทธิ์ผู้ดูแล
dev["การเตรียมฝั่งพัฒนา"] --> doc["1. จัดทำเอกสารข้อสมมติสภาพแวดล้อม"]
dev --> chk["2. ยืนยันด้วย gpresult และค่าจริง"]
dev --> priv["3. แยกความจำเป็นของสิทธิ์ตั้งแต่ขั้นออกแบบ"]
doc -.-> ask["ขอยืนยันจากสารสนเทศลูกค้าก่อนติดตั้ง"]
ภาพ 20: การเตรียมฝั่งพัฒนาคือจัดทำเอกสารข้อสมมติสภาพแวดล้อม ยืนยันด้วย gpresult และค่าจริง และแยกความจำเป็นของสิทธิ์ผู้ดูแลตั้งแต่ขั้นออกแบบ.
9. สรุป
- Group Policy คือกลไกที่ประมวลผลการตั้งค่าระดับ GPO ตามลำดับท้องถิ่น → ไซต์ → โดเมน → OU (LSDOU) และความขัดแย้งถูกแก้ด้วยตัวที่ประมวลผลทีหลังชนะ GPO ของ OU ที่ใกล้เป้าหมายที่สุดคือชั้นที่แข็งที่สุด และ GPO ท้องถิ่นคือชั้นที่อ่อนที่สุด
- บล็อกการสืบทอด Enforced และการกรองความปลอดภัยให้ควบคุมการไหลเริ่มต้นได้ Enforced ชนะบล็อกการสืบทอดด้วย จึงไม่ควรใช้พร่ำ
- การใช้เดินสองช่อง: การประมวลผลเบื้องหน้าตอนเริ่มระบบ/ลงชื่อเข้าใช้ และการรีเฟรชพื้นหลังราวทุก 90 นาทีบวกออฟเซ็ตสุ่มโดยค่าเริ่มต้น gpupdate /force ใช้การตั้งค่าทั้งหมดใหม่ แต่ไม่มีผลกับการตั้งค่าที่ถูกประมวลผลเฉพาะตอนลงชื่อเข้าใช้หรือรีสตาร์ต
- เมื่อการตั้งค่าไม่ถูกใช้ ให้แยกแบบเครื่องกลตามลำดับ gpresult /h → บันทึกปฏิบัติการ GroupPolicy → คีย์ Policies ในรีจิสทรี GPO ที่ถูกปฏิเสธแสดงพร้อมเหตุผล
- นิยาม Administrative Templates คือ ADMX/ADML และการดำเนินงานโดเมนควรรวมที่ Central Store ใน SYSVOL เมื่ออัปเดต ให้สลับฝั่ง Central Store อย่าแทนที่โฟลเดอร์ PolicyDefinitions ท้องถิ่น
- การใช้ GPO หรือ Intune ถูกตัดสินด้วยฐานตัวตนและที่อยู่ของเครื่อง ในไฮบริดให้เลี่ยงการกำหนดคู่ของการตั้งค่าเดียวกันแล้วดึงหน่วยงานจัดการไปฝั่งเดียว Group Policy analytics ช่วยจัดงานโยกย้าย
- สำหรับนักพัฒนา GPO ของลูกค้าเป็นส่วนหนึ่งของสเปกสภาพแวดล้อม จัดทำเอกสารข้อสมมติเรื่องนโยบายการรัน ไฟร์วอลล์ แมปไดรฟ์ และการกำหนดพร็อกซี แล้วฝึกยืนยันด้วย gpresult — แล้วกรณี “พังเฉพาะที่ลูกค้า” ส่วนใหญ่จะไม่น่ากลัวอีก
บทความที่เกี่ยวข้อง
- ไฟร์วอลล์ Windows กับแอปธุรกิจ — ลงทะเบียนกฎขาเข้าจากตัวติดตั้ง
- การจัดการ Windows Update หลังการเลิก WSUS — วิธีเลือกระหว่าง WUfB, Autopatch และ Intune
- นโยบายการรัน PowerShell และการลงนามสคริปต์ — คู่มือปฏิบัติเพื่อเลิกปิดด้วย Bypass
- การจัดเตรียมเครื่องอัตโนมัติด้วย winget + PowerShell — ทำให้สมุดรันบุกปฏิบัติการได้
- คู่มือเลิกพึ่ง IE Mode
- เมื่อใดที่จริง ๆ แล้วต้องใช้สิทธิ์ผู้ดูแลบน Windows — UAC พื้นที่ที่ถูกป้องกัน และวิธีดูตั้งแต่ขั้นออกแบบ
ด้านให้คำปรึกษาที่เกี่ยวข้อง
KomuraSoft LLC รับการสอบสวนสาเหตุที่แอปธุรกิจรันไม่ได้ในสภาพแวดล้อมของลูกค้าภายใต้การจัดการ GPO การจัดระเบียบข้อกำหนดการติดตั้ง (นโยบายการรัน ไฟร์วอลล์ ข้อสมมติเครือข่าย) และคำปรึกษาเทคนิคเรื่องการทำรายการนโยบายกับแผนการใช้ร่วมกับ Intune สำหรับเจ้าหน้าที่สารสนเทศที่ได้รับช่วงสภาพแวดล้อม AD เริ่มจากขั้น “มาอ่านรายงาน gpresult ด้วยกัน” ก็ได้
ลิงก์อ้างอิง
-
Microsoft Learn, Group Policy processing and precedence. ว่าด้วย Group Policy ที่ถูกประมวลผลตามลำดับ GPO ท้องถิ่น → ไซต์ → โดเมน → OU และ GPO ที่ประมวลผลทีหลังเขียนทับตัวก่อนเมื่อขัดแย้ง (การตั้งค่าที่ไม่ขัดแย้งถูกรวม) ว่าด้วยหลาย GPO ในคอนเทนเนอร์เดียวกันที่ถูกประมวลผลตามลำดับลิงก์ โดย GPO ที่เลขลำดับลิงก์น้อยที่สุดถูกประมวลผลท้ายสุดและได้ลำดับก่อนสูงสุด ว่าด้วยข้อยกเว้น Enforced การปิดลิงก์ การปิดการกำหนดค่าผู้ใช้/คอมพิวเตอร์ และบล็อกการสืบทอด ว่าด้วย GPO ที่ถูก Enforced ที่ยังถูกใช้แม้ระดับล่างตั้งบล็อกการสืบทอด ว่าด้วยคอมพิวเตอร์เวิร์กกรุ๊ปที่ประมวลผลเฉพาะ GPO ท้องถิ่น และว่าด้วยนโยบายคอมพิวเตอร์ที่ใช้ตอนเริ่มระบบกับนโยบายผู้ใช้ที่ใช้ตอนลงชื่อเข้าใช้ ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Microsoft Learn, ADMX_GroupPolicy Policy CSP. ว่าด้วย Group Policy ของคอมพิวเตอร์ที่ถูกใช้เสมอตอนเริ่มระบบ และโดยค่าเริ่มต้นรีเฟรชพื้นหลังทุก 90 นาทีบวกออฟเซ็ตสุ่ม 0-30 นาที ว่าด้วย Group Policy ของผู้ใช้ที่ถูกใช้เสมอตอนลงชื่อเข้าใช้และรีเฟรชด้วยค่าเริ่มต้น 90 นาทีบวกออฟเซ็ต 0-30 นาทีเช่นกัน ว่าด้วยช่วงรีเฟรชเริ่มต้นบนตัวควบคุมโดเมนที่เป็น 5 นาที และว่าด้วยช่วงรีเฟรชที่กำหนดได้ในช่วง 0-64,800 นาที ↩ ↩2
-
Microsoft Learn, gpupdate. ว่าด้วย gpupdate ที่โดยค่าเริ่มต้นใช้เฉพาะการตั้งค่านโยบายที่เปลี่ยน และใช้การตั้งค่าทั้งหมดใหม่ด้วย /force ว่าด้วย /logoff ที่จำเป็นสำหรับส่วนขยายอย่างการติดตั้งซอฟต์แวร์ฝั่งผู้ใช้หรือการเปลี่ยนเส้นทางโฟลเดอร์ ซึ่งการรีเฟรชพื้นหลังไม่ประมวลผลแต่ประมวลผลตอนลงชื่อเข้าใช้ ว่าด้วย /boot ที่จำเป็นสำหรับส่วนขยายอย่างการติดตั้งซอฟต์แวร์ฝั่งคอมพิวเตอร์ซึ่งประมวลผลเฉพาะตอนเริ่มระบบ และว่าด้วยตัวเลือก /target:{computer user} กับ /wait -
Microsoft Learn, gpresult. ว่าด้วย gpresult ที่เป็นคำสั่งแสดง Resultant Set of Policy (RSoP) ว่าด้วย /h ที่สร้างรายงาน HTML และ /x ที่สร้างรายงาน XML โดย /f อนุญาตให้เขียนทับ ว่าด้วย /r ที่แสดงสรุป และ /v กับ /z ที่แสดงรายละเอียด ว่าด้วย /scope {user computer} ที่จำกัดเป้าหมาย และว่าด้วยชุดผลของนโยบายที่ทับกันซึ่งถูกสร้างตามสมาชิกภาพไซต์ โดเมน และ OU -
Microsoft Learn, Applying Group Policy troubleshooting guidance. ว่าด้วยขั้นตอนการรัน gpresult /h จากพรอมต์คำสั่งที่ยกระดับเพื่อดูเหตุผลที่ GPO ไม่ถูกใช้ เป็นจุดเริ่มของการแยก Group Policy ว่าด้วยบันทึกปฏิบัติการ GroupPolicy (Microsoft-Windows-GroupPolicy/Operational) ที่บันทึกรายการ GPO ที่ถูกใช้และรายการ GPO ที่ถูกปฏิเสธพร้อมเหตุผลการปฏิเสธ ว่าด้วย ActivityID ไม่ซ้ำที่ถูกกำหนดแก่การประมวลผลนโยบายแต่ละรอบ และขั้นตอนการใช้มุมมองกำหนดเองกรองเหลือเหตุการณ์ของรอบนั้น และว่าด้วยการเปิดบันทึกดีบักของ GPSvc ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Implementing Registry-based Policy. ว่าด้วยที่เก็บนโยบายฐานรีจิสทรีที่จำกัดอยู่ที่ HKCU\Software\Policies และ HKLM\Software\Policies (ที่ที่แนะนำ) บวก Software\Microsoft\Windows\CurrentVersion\Policies ใต้ HKCU/HKLM ว่าด้วยสถานะ Not Configured ที่ไม่เขียนค่าลงรีจิสทรี ว่าด้วยแอปที่ควรถูกคาดหวังให้อ่านคีย์นโยบายก่อนแล้วถอยไปค่า preference หากไม่มี โดยคีย์นโยบายได้ลำดับก่อนคีย์ preference เสมอ ว่าด้วยชนิดข้อมูลที่เก็บได้คือ REG_DWORD, REG_SZ และ REG_EXPAND_SZ และว่าด้วยแอปที่ควรถูกคาดหวังให้ตรวจคีย์นโยบายอีกครั้งเมื่อมีการอัปเดตนโยบาย ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, How to create and manage the Central Store for Group Policy Administrative Templates in Windows. ว่าด้วย Administrative Templates ที่แยกเป็นตัวนิยาม ADMX กับสตริงแสดงผล ADML ตามภาษา ว่าด้วยการสร้าง Central Store เป็นโฟลเดอร์ PolicyDefinitions ใต้ SYSVOL ของตัวควบคุมโดเมน (เช่น \contoso.com\SYSVOL\contoso.com\policies\PolicyDefinitions) ว่าด้วยเนื้อหาที่ถูกจำลองไปทุกตัวควบคุมโดเมนในโดเมน และเครื่องมือ Group Policy ที่อ้างอิง Central Store โดยค่าเริ่มต้น ว่าด้วยไฟล์ ADML ที่ถูกวางในโฟลเดอร์ตามภาษาอย่าง en-US หรือ ko-KR ว่าด้วยการแทนที่ C:\Windows\PolicyDefinitions ด้วยชุด ADMX ที่ดาวน์โหลดซึ่งไม่ถูกรองรับ ว่าด้วยคำแนะนำเมื่ออัปเดต Central Store ที่มีอยู่ ให้รวบรวมชุด ADMX/ADML ของ OS และส่วนขยายแอปในโฟลเดอร์ใหม่ที่ตั้งชื่อตามเวอร์ชันอย่าง PolicyDefinitions-24H2 เปลี่ยนชื่อโฟลเดอร์ปัจจุบันไปข้างเป็นเช่น PolicyDefinitions-23H2 แล้วเปลี่ยนชื่อโฟลเดอร์ใหม่เป็นชื่อของจริง PolicyDefinitions และว่าด้วยข้อดีของวิธีนี้ที่กลับไปโฟลเดอร์ที่ถอยไว้ได้หากเกิดปัญหาหนัก ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Microsoft Learn, ControlPolicyConflict Policy CSP. ว่าด้วยการตั้งนโยบาย MDMWinsOverGP (ค่าเริ่มต้น 0) เป็น 1 ที่ทำให้การตั้งค่า MDM ได้ลำดับก่อน Group Policy สำหรับนโยบายที่สอดคล้องภายใน Policy CSP ว่าด้วยขอบเขตที่จำกัดอยู่ที่นโยบายใน Policy CSP และไม่ใช้กับ CSP อื่นอย่าง Defender CSP และว่าด้วยการกำหนดการตั้งค่านอกการควบคุมนี้ทั้งผ่าน GPO และ MDM ที่ทำให้เกิดสภาพแข่งขันโดยไม่รับประกันว่าฝ่ายใดชนะ จึงควรเลี่ยงการกำหนดคู่ ↩ ↩2
-
Microsoft Learn, Analyze your on-premises GPOs using Group Policy analytics in Microsoft Intune. ว่าด้วย Group Policy analytics ที่นำเข้าและวิเคราะห์ GPO ในองค์กร แสดงการตั้งค่าที่ผู้ให้ MDM รวม Intune รองรับ และการตั้งค่าที่ถูกเลิกใช้หรือใช้ไม่ได้ ว่าด้วยการนำเข้า GPO ที่ส่งออกจาก GPMC ในรูปแบบ XML และว่าด้วย GPO ที่นำเข้าซึ่งโยกย้ายไปนโยบาย Settings catalog เพื่อแจกไปอุปกรณ์ได้ ↩ ↩2 ↩3
-
Microsoft Learn, about_Execution_Policies. ว่าด้วยขอบเขตนโยบายการรันที่ถูกประเมินตามลำดับก่อน MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine ว่าด้วย MachinePolicy และ UserPolicy ที่เป็นขอบเขตที่ Group Policy ตั้ง จึงทำให้นโยบายที่หลวมกว่า (หรือเข้มกว่า) ที่ตั้งที่ขอบเขตล่างถูกนโยบายลำดับก่อนสูงกว่าทับ และว่าด้วย Get-ExecutionPolicy -List ที่แสดงการตั้งค่าทุกขอบเขต ↩ ↩2
-
Microsoft Learn, Windows Firewall rules. ว่าด้วยสภาพแวดล้อมที่จัดการไฟร์วอลล์รวมศูนย์ด้วย GPO หรือ CSP ซึ่งปิด “การรวมกฎท้องถิ่น” (AllowLocalPolicyMerge) ทีละโปรไฟล์ได้ ว่าด้วยกฎที่สร้างท้องถิ่นที่ไม่ถูกใช้เมื่อถูกปิด และว่าด้วยการแจกรวมศูนย์ที่กลายเป็นข้อบังคับสำหรับกฎของแอปที่ต้องการการเชื่อมต่อขาเข้า ↩ ↩2
-
Microsoft Learn, Step-by-Step Guide to Managing Multiple Local Group Policy Objects. ว่าด้วย GPO ท้องถิ่นตั้งแต่ Windows Vista เป็นต้นไปที่มีหลายชั้น — Local Computer Policy, Administrators/Non-Administrators และนโยบายต่อผู้ใช้ — เรียก MLGPO ว่าด้วยชั้นเหล่านี้ที่ถูกประมวลผลตามลำดับคอมพิวเตอร์ท้องถิ่น → ผู้ดูแล/ไม่ใช่ผู้ดูแล → ต่อผู้ใช้ โดยชั้นต่อผู้ใช้ถูกอ่านท้ายสุดและได้ลำดับก่อนสูงสุด และว่าด้วยฟีเจอร์นี้ที่มุ่งการจัดการพีซีที่ไม่เข้าร่วมโดเมน ↩
-
Microsoft Learn, Security filtering using GPMC. ว่าด้วยการกรองความปลอดภัยที่เป็นกลไกจำกัดว่าผู้ใช้และคอมพิวเตอร์ใดรับการตั้งค่าของ GPO ว่าด้วย GPO ที่ถูกใช้ได้เฉพาะเมื่อผู้ใช้หรือคอมพิวเตอร์เป้าหมายมีทั้งสิทธิ์ Read และ Apply group policy ว่าด้วยทั้งสองสิทธิ์ที่ถูกให้แก่ Authenticated Users (ซึ่งรวมทั้งผู้ใช้และคอมพิวเตอร์) บนทุก GPO โดยค่าเริ่มต้น และว่าด้วยตัวกรองที่ทำงานกับ GPO ทั้งก้อน ไม่ใช่ทีละการตั้งค่า ↩
-
Microsoft Learn, Deploying Group Policy Security Update MS16-072 (KB3163622). ว่าด้วยการเปลี่ยนการออกแบบหลัง MS16-072 ที่ทำให้ Group Policy ของผู้ใช้ถูกดึงภายใต้บริบทความปลอดภัยของคอมพิวเตอร์ ว่าด้วยข้อกำหนดที่ตามมาว่าบัญชีคอมพิวเตอร์ต้องมีสิทธิ์อ่าน GPO และว่าด้วยความจำเป็น เมื่อสิทธิ์ของ Authenticated Users ถูกถอดผ่านการกรองความปลอดภัยหรือคล้ายกัน ที่ต้องเพิ่ม Read (ไม่ใช่ Apply group policy) ให้ Authenticated Users หรือ Domain Computers ↩ ↩2
-
Microsoft Learn, Loopback processing of Group Policy. ว่าด้วยการประมวลผลลูปแบ็กที่เป็นฟีเจอร์ใช้ชุด GPO การตั้งค่าผู้ใช้ตามที่ตั้งของออบเจ็กต์คอมพิวเตอร์ ว่าด้วยการออกแบบสำหรับคอมพิวเตอร์เฉพาะทางอย่างพื้นที่สาธารณะ ห้องปฏิบัติการ หรือห้องเรียน และว่าด้วยการรองรับเฉพาะในสภาพแวดล้อม Active Directory พร้อมโหมด Merge และ Replace ↩
-
Microsoft Learn, Group Policy Preferences Getting Started Guide. ว่าด้วย Group Policy Preferences ที่เป็นตระกูลส่วนขยาย GPMC สำหรับกำหนดแมปไดรฟ์ เครื่องพิมพ์ งานตามตาราง บริการ ตัวเลือกโฟลเดอร์ และอื่น ๆ ว่าด้วย item-level targeting ที่จำกัดเพิ่มได้ และว่าด้วย Preferences ที่แจกการตั้งค่าโดยไม่จำกัดการเปลี่ยนของผู้ใช้ พร้อมเลือกได้ว่าจะบังคับการตั้งค่านั้นหรือไม่ — นิสัยที่ต่างจาก Policies จริง ↩
บทความที่เกี่ยวข้อง
บทความล่าสุดที่มีแท็กเดียวกัน เพื่อเจาะลึกหัวข้อใกล้เคียง
จาก Group Policy สู่ Intune — คู่มือโยกย้ายการจัดการอุปกรณ์สำหรับธุรกิจขนาดกลางและเล็ก
เมื่อเซิร์ฟเวอร์ AD ถึงรอบเปลี่ยน ควรอยู่กับ Group Policy หรือย้ายไป Entra ID บวก Intune? บทความนี้จัดสำหรับธุรกิจขนาดกลางและเล็กถึงความต...
นโยบายการตรวจสอบความปลอดภัยของ Windows และการสอบสวนบันทึกเหตุการณ์ในทางปฏิบัติ — เป็นทีมไอทีที่อ่าน 4625 ได้
คู่มือปฏิบัติเพื่อตอบคำขอ «ช่วยดูบันทึกการลงชื่อเข้าใช้ที่ล้มเหลว» ครอบคลุมความสัมพันธ์ของนโยบายการตรวจสอบพื้นฐานกับขั้นสูง หมวดย่อยที่คว...
เลือกบัญชีบริการ Windows — LocalSystem, บัญชีเสมือน และ gMSA
ยังรันบริการ Windows เป็น LocalSystem อยู่หรือไม่ บทความนี้เปรียบเทียบสิทธิ์และตัวตนเครือข่ายของ LocalService, NetworkService, บัญชีเสมือ...
OneDrive "ไฟล์ตามความต้องการ" กับแอปธุรกิจ — ข้อสมมติที่เพลสโฮลเดอร์ทำลาย และวิธีรับมือ
CSV บนเดสก์ท็อปเปิดไม่ได้ หรือการนำเข้าล้มเหลวด้วย "ไม่พบไฟล์" — สาเหตุอาจเป็น Known Folder Move และไฟล์ตามความต้องการของ OneDrive บทความ...
Volume Shadow Copy (VSS): กลไกและงานปฏิบัติ — ทำไมซอฟต์แวร์สำรองจึงคัดลอกไฟล์ที่กำลังใช้อยู่ได้
ไฟล์ที่กำลังใช้อยู่ปกติคัดลอกไม่ได้เพราะละเมิดการแชร์ แล้วซอฟต์แวร์สำรองทำได้อย่างไร บทความนี้อธิบายบทบาทตัวร้องขอ ไรเตอร์ และโปรไวเดอร์ข...
หัวข้อที่เกี่ยวข้อง
หน้าเหล่านี้วางหัวข้อไว้ในบริบทที่กว้างขึ้นของบริการและการตัดสินใจ
หัวข้อเทคนิคของ Windows
ประตูสู่การพัฒนา Windows การตรวจสอบบั๊ก และการใช้ประโยชน์จากสินทรัพย์เดิม
บริการที่เกี่ยวข้องกับหัวข้อนี้
บทความนี้เกี่ยวข้องโดยตรงกับบริการต่อไปนี้
พัฒนาแอป Windows
แอปธุรกิจ การเชื่อมต่ออุปกรณ์ และเครื่องมือสื่อสาร ตั้งแต่ความต้องการจนถึงการพัฒนา
คำถามที่พบบ่อย
คำถามที่มักพบในการปรึกษาเกี่ยวกับหัวข้อของบทความนี้
- รัน gpupdate /force แล้ว การตั้งค่ายังไม่ถูกใช้ ทำไม?
- ก่อนอื่นตรวจว่าการตั้งค่านั้นเป็นชนิดที่การรีเฟรชพื้นหลังไม่เคยใช้หรือไม่ การติดตั้งซอฟต์แวร์ฝั่งผู้ใช้และการเปลี่ยนเส้นทางโฟลเดอร์ถูกประมวลผลเฉพาะตอนลงชื่อเข้าใช้ และการติดตั้งซอฟต์แวร์ฝั่งคอมพิวเตอร์ถูกประมวลผลเฉพาะตอนเริ่มระบบ ดังนั้นหลัง gpupdate จบ คุณยังต้องลงชื่อออก (/logoff) หรือรีสตาร์ต (/boot) จากนั้นรัน gpresult /h เพื่อสร้างรายงาน RSoP แล้วดูว่า GPO นั้นอยู่ใน Applied GPOs หรือไปโผล่ใน Denied GPOs พร้อมเหตุผล หากถูกใช้แล้วแต่พฤติกรรมไม่เปลี่ยน ให้สงสัยว่า GPO อื่นที่มีลำดับก่อนสูงกว่ากำลังเขียนทับการตั้งค่าเดียวกัน (ตัวที่ประมวลผลทีหลังชนะ) รายงานแสดง Winning GPO ของแต่ละการตั้งค่า จึงชี้ได้ว่า GPO ใดชนะจริง
- ในรายงาน gpresult คำว่า Denied - Filtering หมายความว่าอะไร?
- หมายความว่า GPO นั้นอยู่ในขอบเขตตามตำแหน่งลิงก์ แต่การกรองตัดออกจากการถูกใช้จริง สาเหตุที่พบบ่อยสุดคือการกรองความปลอดภัย: GPO จะถูกใช้ได้เมื่อผู้ใช้หรือคอมพิวเตอร์มีทั้งสิทธิ์ Read และ Apply group policy บน GPO นั้น โดยค่าเริ่มต้นทั้งสองสิทธิ์ถูกให้แก่ Authenticated Users แต่หากคุณจำกัดเหลือกลุ่มเฉพาะ สมาชิกภาพที่พลาด — ลืมใส่กลุ่ม หรือลืมใส่บัญชีคอมพิวเตอร์ — จะทำให้ถูกปฏิเสธ สำหรับ GPO ฝั่งผู้ใช้ การให้ทั้งสองสิทธิ์แก่ผู้ใช้เป้าหมายอย่างเดียวไม่พอ ตั้งแต่ MS16-072 นโยบายผู้ใช้ถูกดึงภายใต้บริบทความปลอดภัยของคอมพิวเตอร์ จึงต้องเหลือ Read (ไม่ต้อง Apply) ให้ Authenticated Users หรือ Domain Computers สาเหตุอื่นรวมตัวกรอง WMI ที่ไม่ตรง หรือการกำหนดค่าผู้ใช้/คอมพิวเตอร์ถูกปิดบนตัว GPO เอง เหตุผลการปฏิเสธถูกบันทึกทั้งในรายงาน gpresult และในบันทึกปฏิบัติการ GroupPolicy
- ควรจัดการเครื่องด้วย GPO หรือด้วย Intune?
- หลักคือให้ตรงกับฐานตัวตนของเครื่อง หากเครื่องส่วนใหญ่เข้าร่วมโดเมน AD ในองค์กรและเชื่อมเครือข่ายภายในตลอด GPO คือทางที่ชัวร์และละเอียดที่สุด หากมีเครื่องที่เข้าร่วม Microsoft Entra มากขึ้น หรือเครื่องทำงานที่บ้านที่ไม่แตะตัวควบคุมโดเมน Intune (MDM/CSP) ซึ่งส่งการกำหนดค่านอกสำนักงานได้จึงเหมาะกว่า ในสภาพแวดล้อมไฮบริดที่ทั้งสองอยู่ร่วมกัน การกำหนดการตั้งค่าเดียวกันทั้งผ่าน GPO และ MDM ทำให้เกิดความขัดแย้งโดยไม่รับประกันว่าฝ่ายใดชนะ ดังนั้นหลักคือตัดสินทีละขอบเขตการตั้งค่าว่าฝ่ายใดจัดการ แล้วดึงไปฝั่งเดียว พอเริ่มคิดโยกย้าย การนำเข้า GPO ที่มีอยู่เข้า Group Policy analytics ของ Intune ช่วยจัดว่าการตั้งค่าใดรองรับ MDM แล้ว และใดที่ไม่รองรับหรือถูกเลิกใช้
- การตั้งค่าที่กำหนดในตัวแก้ไข Group Policy ท้องถิ่น (gpedit.msc) ถูกการตั้งค่าโดเมนเขียนทับตลอด เป็นสเปกหรือ?
- ใช่ เป็นตามสเปก Group Policy ถูกประมวลผลตามลำดับท้องถิ่น → ไซต์ → โดเมน → OU (LSDOU) และ GPO ที่ประมวลผลทีหลังชนะเมื่อขัดแย้ง จึงทำให้ GPO ท้องถิ่นเป็นชั้นที่อ่อนที่สุด หาก GPO โดเมนกำหนดการตั้งค่าเดียวกัน การเปลี่ยนท้องถิ่นจะถูกเขียนทับเสมอ ในทางกลับกัน หากฝั่งโดเมนปล่อยการตั้งค่านั้นเป็น Not Configured ค่าของ GPO ท้องถิ่นยังอยู่ แม้ต้องการให้ค่าท้องถิ่นได้ลำดับก่อนเพื่อการทดสอบ ก็ไม่มีทางกลับลำดับนี้บนพีซีที่เข้าร่วมโดเมน ทางที่เป็นจริงคือสร้าง OU ทดสอบแล้วปรับ GPO ฝั่งโดเมน หรือใช้เครื่องทดสอบที่ไม่เข้าร่วมโดเมน
- แอปธุรกิจที่พัฒนาแล้วรันไม่ได้เฉพาะในสภาพแวดล้อมของลูกค้า มีทางตรวจไหมว่า GPO เป็นสาเหตุ?
- ขั้นแรกคือขอให้ผู้ดูแลของลูกค้ารัน gpresult /h report.html จากพรอมต์คำสั่งที่ยกระดับบนพีซีที่ปัญหา แล้วอ่านรายงาน RSoP มองหาการตั้งค่าที่จะเปลี่ยนพฤติกรรมแอป เช่น สคริปต์ถูกบล็อกด้วยนโยบายการรัน การรวมกฎท้องถิ่นของไฟร์วอลล์ถูกปิด หรือพร็อกซีกับแมปไดรฟ์ที่ถูกกำหนด นอกจากนี้การตรวจว่ามีค่า policy ของผลิตภัณฑ์ที่เกี่ยวข้องถูกเขียนใต้ HKLM\Software\Policies และ HKCU\Software\Policies ในรีจิสทรี ช่วยชี้การตั้งค่าบังคับจาก Administrative Templates ได้แบบเครื่องกล ฝั่งพัฒนาการเตรียมที่เป็นจริงคือจัดทำเอกสารข้อสมมติที่แอปพึ่ง — นโยบายการรัน พอร์ตรอรับ โฟลเดอร์ที่เขียน เป็นต้น — เป็นข้อกำหนดการติดตั้ง แล้วให้ฝ่ายสารสนเทศของลูกค้ายืนยันก่อนติดตั้ง