无法添加/删除角色:Windows Server需要重新启动
在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,然后尝试再次安装/删除角色。没有错误应该出现。