无法添加/删除角色:Windows Server需要重新启动

时间:2020-01-09 10:46:57  来源:igfitidea点击:

在Windows Server 2015上安装任何角色或者功能时,出现错误,提示服务器需要重新启动:

在指定服务器上添加或删除功能的请求失败。无法完成该操作,因为您指定的服务器需要重新启动
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

。好的,我们重新启动服务器,然后尝试再次安装角色。出现相同的错误。如此反复进行。

因此,即使在重新启动服务器并安装最新更新之后,我们也无法在Windows Server上安装或者删除任何角色/功能。

服务器事件日志(事件查看器-> Windows日志->系统)显示了一个错误,事件ID为" 7041",并且服务控制管理器为源。事件说明说:

此服务帐户没有所需的用户权限“作为服务登录”。
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
  • 转到"计算机配置> Windows设置>安全设置>本地策略>用户权限分配";
  • 查找"作为服务登录"策略;
  • 如我们所见,没有
NT SERVICE\ALL SERVICES

在这项策略中。让我们尝试添加它:添加用户或者组-> NT SERVICE\ALL SERVICES。发生错误:找不到名称。

如何将服务帐户添加到本地策略?我可以找到向NT SERVICE\ALL SERVICES授予"作为服务登录"权限的唯一可能方法是使用ntrights.exe工具(来自旧的Windows Server 2003资源工具包)。

下载并安装Server 2003资源工具包(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

如果当前权限列表中没有"网络服务",则也要添加此帐户。如有必要,以相同的方式添加NT SERVICE\MSSQL $MICROSOFT ## WID的权限:

ntrights.exe +r SeServiceLogonRight -u “NT SERVICE\MSSQL$MICROSOFT##WID”

确保" NT服务\所有服务"已出现在"组策略编辑器"控制台的"作为服务登录"中。

重新启动Windows Server,然后尝试再次安装/删除角色。没有错误应该出现。