При установке любой роли или компонента в Windows Server 2016 появляется ошибка, что сервер требует перезагрузки: “
The operation cannot 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
ntrights.exe +r SeServiceLogonRight -u “NT SERVICE\MSSQL$MICROSOFT##WID”
Проверяем, что NT SERVICE\ALL SERVICES появилось в разрешениях “Log on as a service” в консоли редактора политики.
Перезагрузите свой Windows Server и попробуйте установить/удалить роль. Все должно пройти без ошибки.