บทช่วยสอนนี้แนะนำวิธีแก้ไขปัญหา: ไม่สามารถเพิ่ม Roles และ Features บน Server 2016 หรือ Server 2012 ได้ พร้อมข้อผิดพลาด: "Feature installation Failed: The request to add or remove features on the specified server failed. The operation cannot be completed, because the server that you specified requires a restart"

ผลคือ ไม่สามารถติดตั้ง Roles และ Features บน Server ได้ เนื่องจากปัญหายังคงอยู่แม้จะรีสตาร์ท Server และติดตั้งอัปเดตล่าสุดแล้ว
พร้อมกับนั้น ใน Event Viewer (Windows Logs > System) พบข้อผิดพลาดดังนี้:
"Event 7041: Service Control Manager.
The MSSQL$MICROSOFT##WID service was unable to log on as NT SERVICE\MSSQL$MICROSOFT##WID with the currently configured password due to the following error:
Logon failure: the user has not been granted the requested logon type at this computer.
Service: MSSQL$MICROSOFT##WID
Domain and account: NT SERVICE\MSSQL$MICROSOFT##WID
This service account does not have the required user right "Log on as a service."
User Action: Assign "Log on as a service" to the service account on this computer. You can use Local Security Settings (Secpol.msc) to do this...

วิธีแก้: ไม่สามารถเพิ่ม Roles และ Features บน Server 2016 หรือ 2012 เนื่องจาก Server ต้องการ Restart
ข้อเสนอ จากความคิดเห็นผู้ใช้: ก่อนทำตามขั้นตอนด้านล่าง ลอง รีสตาร์ท บริการ Remote Registry แล้วลองติดตั้ง Roles อีกครั้ง หากล้มเหลวอีก ให้ทำตามคำแนะนำด้านล่าง
เพื่อแก้ไขข้อผิดพลาดการติดตั้ง Feature "The request to add or remove features on the specified server failed, because the server requires a restart" ให้ดำเนินการมอบสิทธิ์ผู้ใช้ "Log on as a service" ให้กับ "NT SERVICE\ALL SERVICES" และ "NT SERVICE\MSSQL$MICROSOFT##WID"
กรณี A: หาก Server เป็นส่วนหนึ่งของ Domain ให้แก้ไข Default Domain Policy ดังนี้:
- กดปุ่ม Windows
+ R พร้อมกันเพื่อเปิดกล่องคำสั่ง Run - พิมพ์: gpmc.msc แล้วกด Enter

- ใน Group Policy Management ไปที่:
- Forest –> Domains –> "Your Domain Name" –> Domain Controllers
- คลิกขวาที่ Default Domain Controller Policy เลือก Edit

- ดำเนินการต่อไปที่ ขั้นตอน–4 ด้านล่าง…
กรณี B: หาก Server เป็น Local Server ให้แก้ไข Local Group Policy ดังนี้:
- กดปุ่ม Windows
+ R พร้อมกันเพื่อเปิดกล่องคำสั่ง Run - พิมพ์: gpedit.msc แล้วกด Enter

- ใน Local Group Policy Editor ไปที่:
- Computer Configuration –> Windows Settings –> Security Settings –> Local Policies –> User Rights Assignment

———————————
- ดับเบิลคลิกที่รายการ Log on as a service

- คลิกปุ่ม Add User or Group

- พิมพ์ NT SERVICE\ALL SERVICES แล้วคลิก OK *
- ที่หน้าต่างหลัก คลิก OK แล้ว ปิด Group Policy Editor
- เปิด Command Prompt ด้วยสิทธิ์ Administrator และรันคำสั่งต่อไปนี้เพื่ออัปเดต Group Policy
- gpupdate /force
- รีบูท Server ของคุณ
- หลังรีสตาร์ท ให้เปิด Group Policy Management ไปที่ User Rights Assignments อีกครั้ง
- ดับเบิลคลิกที่ Log on as a service คลิก Add User or Group
- พิมพ์ NT SERVICE\MSSQL$MICROSOFT##WID แล้วคลิก OK *
- คลิก OK อีกครั้ง แล้ว ปิด Group Policy Editor
- เปิด Command Prompt ด้วยสิทธิ์ Administrator และรันคำสั่งอัปเดต Group Policy
- gpupdate /force
- รีบูท Server ของคุณ
- หลังรีสตาร์ท ให้ลองติดตั้ง Roles และ Features อีกครั้ง
* อ่านหมายเหตุนี้หากมีปัญหาในการเพิ่มบัญชี




* หมายเหตุ: หากไม่สามารถเพิ่มบัญชี "NT SERVICE\MSSQL$MICROSOFT##WID" หรือ "NT SERVICE\ALL SERVICES" เข้าไปใน 'Log on as service' ได้ ให้ทำตามขั้นตอนด้านล่าง:
1. เพิ่ม "Everyone" (ไม่ต้องมีเครื่องหมายคำพูด) ให้มีสิทธิ์ log as service
2. รีบูท Server
3. เพิ่ม ผู้ใช้ "NT SERVICE\ALL SERVICES" และ "NT SERVICE\MSSQL$MICROSOFT##WID" ให้มีสิทธิ์ log as service
4. รัน gpupdate /force
5. รีบูท Server
6. ลบ "Everyone" ออกจาก log on as service
7. ดำเนินการ Add Roles and Features บน Server ต่อไป

เสร็จสิ้น! หากคู่มือนี้ช่วยคุณได้ โปรดแสดงความคิดเห็น แชร์และกดไลค์เพื่อช่วยผู้อื่นได้นะครับ