使用 LocalSystem 帐户作为服务登录帐户

在 LocalSystem 帐户下运行的一个优点是,该服务对本地资源具有完全不受限制的访问权限。 这也是 LocalSystem 的缺点,因为 LocalSystem 服务可以执行会降低整个系统性能的操作。 具体而言,在域控制器 (DC) 上作为 LocalSystem 运行的服务对 Active Directory 域服务的访问权限不受限制。 这意味着服务中的错误或对服务的安全攻击可能会损坏系统,或者如果服务在 DC 上,会损坏整个企业网络。

出于这些原因,敏感安装中的域管理员将谨慎允许服务作为 LocalSystem 运行。 事实上,他们可能会据此制定政策,特别是在 DC 上。 如果服务必须以 LocalSystem 身份运行,则服务的文档应向域管理员证明,授予服务以提升的特权运行的权限的原因。 服务绝不能在域控制器上作为 LocalSystem 运行。 有关详细信息以及演示服务或安装程序如何确定服务安装程序是否在域控制器上运行的代码示例,请参阅测试是否在域控制器上运行

当服务在属于域成员的计算机上以 LocalSystem 帐户运行时,该服务将授予计算机帐户任何网络访问权限,或者将其授予计算机帐户所属的任何组。 请注意,在 Windows 2000 中,域计算机帐户是类似于用户帐户的服务主体。 这意味着,计算机帐户可以位于安全组中,并且安全描述符中的 ACE 可以将访问权限授予计算机帐户。 请注意,不建议出于两个原因将计算机帐户添加到组:

  • 如果计算机离开再重新加入域时,系统会删除并且重新创建计算机帐户。
  • 如果将计算机帐户添加到某个组,则在该计算机上以 LocalSystem 运行的所有服务都将获得组的访问权限。 这是因为所有 LocalSystem 服务共享其主机服务器的计算机帐户。 因此,不将计算机帐户设为任何域管理员组的成员尤其重要。

计算机帐户通常只有少数特权,并且不属于组。 Active Directory 域服务中的默认 ACL 保护允许计算机帐户的最低访问权限。 因此,在 DC 以外的计算机上作为 LocalSystem 运行的服务仅具有 Active Directory 域服务的最低访问权限。

如果服务在 LocalSystem 下运行,则必须在成员服务器上测试服务,以确保服务具有足够的权限来读取/写入 Active Directory 域控制器。 域控制器不应是测试服务的唯一 Windows 计算机。 请注意,在 Windows 域控制器上的 LocalSystem 下运行的服务对 Active Directory 域服务具有完全访问权限,并且成员服务器在计算机帐户的上下文中运行,权限明显减少。