ในบทความนี้ เราจะดูวิธีจัดการสิทธิ์ของผู้ใช้ที่ไม่ใช่แอดมินในการรีสตาร์ทหรือปิดเครื่องคอมพิวเตอร์หรือเซิร์ฟเวอร์ Windows โดยค่าเริ่มต้น ผู้ใช้ที่ไม่มีสิทธิ์สามารถรีสตาร์ทหรือปิดเครื่องได้เฉพาะ Windows desktop versions และไม่สามารถรีสตาร์ท Windows Server ได้ (ปุ่ม shutdown และ restart ไม่พร้อมใช้งานในเมนู Start) เป็นไปได้ไหมที่จะอนุญาตให้ผู้ใช้ที่ไม่มีสิทธิ์แอดมินท้องถิ่นรีสตาร์ท Windows Server? มีงานกลับกันอีกอย่าง — วิธีป้องกันผู้ใช้จากการรีสตาร์ทคอมพิวเตอร์ Windows 10 ที่ใช้เป็น information kiosk, dispatcher console ฯลฯ
อนุญาต/ป้องกันตัวเลือก Shutdown และ Reboot สำหรับผู้ใช้ Windows ผ่าน GPO
คุณสามารถตั้งค่าสิทธิ์ในการรีสตาร์ทหรือปิดเครื่อง Windows โดยใช้พารามิเตอร์ Shut down the system ในส่วน GPO Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → User Rights Assignment.
โปรดสังเกตว่าสิทธิ์รีสตาร์ท/ปิดเครื่องเริ่มต้นสำหรับ Windows 10 desktop และ Windows Server editions ต่างกัน
เปิด Local Group Policy Editor (gpedit.msc) และไปที่ส่วนที่ระบุไว้ข้างต้น 如你所見 สมาชิกของกลุ่มท้องถิ่น Administrators, Users และ Backup Operators มีสิทธิ์ปิดเครื่อง/รีบูทคอมพิวเตอร์ที่รัน Windows 10
บน Windows Server 2016/2012 R2 เฉพาะ Administrators หรือ Backup Operators เท่านั้นที่สามารถปิดเครื่องหรือรีสตาร์ทเซิร์ฟเวอร์ได้ มันสมเหตุสมผลและเหมาะสม เนื่องจากในกรณีส่วนใหญ่ ผู้ใช้ที่ไม่ใช่แอดมินไม่ควรมีสิทธิ์ปิดเซิร์ฟเวอร์ระยะไกล (แม้จะเกิดขึ้นบ้างก็ตาม) เพียงจินตนาการ RDSH server ที่มักจะถูกปิดเครื่องเพราะผู้ใช้คลิกปุ่ม "Shutdown" ในเมนู Start ติดๆ กัน…
อย่างไรก็ตาม ไม่มีกฎที่ไม่มีข้อยกเว้น ดังนั้นหากคุณต้องการอนุญาตให้ผู้ใช้ที่ไม่มีสิทธิ์พิเศษรีสตาร์ท Windows Server ของคุณ เพียงเพิ่มบัญชีของพวกเขาเข้าไปในนโยบายนี้
คุณยังสามารถให้สิทธิ์เริ่ม/หยุด/รีสตาร์ทบริการสำหรับผู้ใช้ที่ไม่ใช่แอดมินได้
หรือในทางกลับกัน คุณต้องการป้องกันผู้ใช้ Windows 10 desktop editions จากการรีสตาร์ทคอมพิวเตอร์ที่ทำหน้าที่บางอย่างของเซิร์ฟเวอร์ ในกรณีนี้ เพียงลบกลุ่ม Users ออกจากนโยบายท้องถิ่น Shut down the system
ในทางเดียวกัน คุณสามารถป้องกัน (หรืออนุญาต) การปิดเครื่อง/รีบูทสำหรับคอมพิวเตอร์ทั้งหมดใน OU เฉพาะของโดเมน Active Directory ของคุณโดยใช้นโยบายโดเมน
ใน Domain Group Policy editor (gpmc.msc) สร้างนโยบายใหม่ Prevent_Shutdown กำหนดค่าพารามิเตอร์ของนโยบาย "Shut down the system" ตามความต้องการของคุณ และกำหนดให้กับ OU ที่มีคอมพิวเตอร์หรือเซิร์ฟเวอร์
อนุญาตการปิดเครื่อง/รีสตาร์ทระยะไกลโดยไม่ต้องมีสิทธิ์แอดมิน
คุณยังสามารถอนุญาตให้ผู้ใช้บางคนรีสตาร์ท Windows Server ของคุณระยะไกลโดยใช้คำสั่ง shutdown โดยไม่ต้องให้สิทธิ์แอดมินท้องถิ่นหรือสิทธิ์ล็อกอินบนเซิร์ฟเวอร์ของคุณผ่าน RDP
เพื่อทำเช่นนี้ ให้เพิ่มบัญชีผู้ใช้เข้าไปในนโยบาย Force shutdown from a remote system ในส่วน GPO เดียวกัน (User Rights Assignment)
โดยค่าเริ่มต้น เฉพาะแอดมินเท่านั้นที่สามารถปิดเครื่องเซิร์ฟเวอร์ระยะไกลได้ เพิ่มบัญชีผู้ใช้เข้าไปในนโยบาย

หลังจากนั้น ผู้ใช้จะได้รับสิทธิ์ SeRemoteShutdown และจะสามารถรีสตาร์ทเซิร์ฟเวอร์ระยะไกลได้โดยใช้คำสั่งนี้:
shutdown -m \\hamb-rds01 -r -f -t 0
วิธีลบตัวเลือก Shutdown/Restart ใน Windows 10
นอกจากนี้ยังมีนโยบายพิเศษที่ช่วยให้ลบตัวเลือก Shutdown, Restart และ Hibernate ออกจากหน้าจอ Start หรือเมนู Start นโยบายนี้ชื่อ Remove and Prevent Access to the Shut Down, Restart, Sleep, and Hibernate commands และตั้งอยู่ในส่วน GPO ต่อไปนี้: User Configuration → Administrative Templates → Start Menu and Taskbar

หลังจากที่คุณเปิดใช้นโยบายนี้ ผู้ใช้จะสามารถตัดการเชื่อมต่อเซสชันปัจจุบันได้อย่างเดียว ปุ่ม Shutdown, Sleep และ Restart จะไม่พร้อมใช้งาน

วิธีค้นหาว่าใครรีสตาร์ท/ปิดเครื่อง Windows Server
หลังจากที่คุณให้สิทธิ์ผู้ใช้ในการรีสตาร์ทเซิร์ฟเวอร์ของคุณ คุณอาจต้องการทราบว่าใครรีสตาร์ทเซิร์ฟเวอร์: ผู้ใช้หรือหนึ่งในแอดมิน
เพื่อทำเช่นนี้ ให้ใช้ Event Viewer (eventvwr.msc) log ไปที่ Windows Logs → System และกรอง log โดย Event ID 1074
ในบทความ How to Analyze RDP Connection Logs? เราพิจารณาวิธีการใช้ Event Viewer เพื่อรับข้อมูลเกี่ยวกับ RDP access logs

如你所見 มีเหตุการณ์การรีสตาร์ทเซิร์ฟเวอร์ใน log ตามลำดับเวลา คำอธิบายเหตุการณ์แสดงเวลาที่รีสตาร์ท เหตุผล และบัญชีที่รีสตาร์ทเซิร์ฟเวอร์
Log Name:System Source: User32 EventID: 1074 The process C:\Windows\system32\shutdown.exe (BE-BAK01) has initiated the restart of computer BE-BAK01 on behalf of user corp\jsmith for the following reason: No title for this reason could be found Reason Code: 0x800000ff Shutdown Type: restart Comment:

ในทางเดียวกัน คุณสามารถรับข้อมูลเกี่ยวกับเหตุการณ์การปิดเครื่อง Windows ล่าสุดได้ เพื่อทำเช่นนี้ ให้กรอง logs โดย Event ID 1076