При установці будь-якій ролі або компонента в Windows Server 2016 з'являється помилка, що сервер вимагає перезавантаження: "The operation can not be completed, because the server that you specified requires a restart
"(Збій запиту на додавання або видалення компонентів на зазначеному сервері. Неможливо завершити операцію, так як потрібно перезавантажити вказаний сервер
). Ок, перезавантажуємо сервер, намагаємося встановити роль і знову з'являється помилка, що потрібне перезавантаження сервера. Але помилка повторюється, і так далі по циклу.
В результаті не виходить встановити / видалити жодну з ролей / компонентів на сервері.
У журналі подій сервера (Event Viewer -> Windows Logs -> System) при цьому фіксіруетсся помилка EventID 7041 від джерела Service Control Manager. У події зазначено:
This service account does not have the required user right "Log on as a service".
Щоб вирішити проблему, необхідно надати права входу в якості служби для "NT SERVICE \ ALL SERVICES» (і для NT SERVICE \ MSSQL $ MICROSOFT ## WID, якщо помилка пов'язана з установкою ролі сервера оновлень WSUS або SQL Server).
- Відкрийте консоль управління локальними політиками
gpedit.msc
; - Перейдіть в розділ Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment;
- Знайдіть політику Log on as a service (Вхід в якості служби);
- Як ви бачите, в політиці входу як служби відсутня NT SERVICE \ ALL SERVICES. Спробуємо її додати -> Add User or Group -> NT SERVICE \ ALL SERVICES. З'являється помилка: система не може знайти цю службовому обліковому записі;
Як же додати в локальну політику сервісну обліковий запис? Єдиний нормальний спосіб, який мені вдалося знайти, щоб надати права "Log on as a service" для NT SERVICE \ ALL SERVICES - скористатися утилітою ntrights.exe (З старого пакета Windows Server 2003 Resource Kit).
Скачайте і встановіть Server 2003 Resource Kit (rktools.exe), потім надайте право SeServiceLogonRight командами:
cd "C: \ Program Files (x86) \ Windows Resource Kits \ Tools"
ntrights.exe + r SeServiceLogonRight -u "NT SERVICE \ ALL SERVICES"
Granting SeServiceLogonRight to NT SERVICE \ ALL SERVICES ... successfulЯкщо в списку поточних прав відсутня NETWORK SERVICE, обов'язково додайте і цей аккаунт. Якщо потрібно, додайте аналогічно права для NT SERVICE \ MSSQL $ MICROSOFT ## WID:
ntrights.exe + r SeServiceLogonRight -u "NT SERVICE \ MSSQL $ MICROSOFT ## WID"
Перевіряємо, що NT SERVICE \ ALL SERVICES з'явилося в дозволах "Log on as a service" в консолі редактора політики.
Перезавантажте свій Windows Server і спробуйте встановити / видалити роль. Все повинно пройти без помилки.