41

有谁知道我需要授予域用户帐户的最低权限才能以该用户身份运行 Windows 服务?

为简单起见,假设服务除了启动、停止和写入“应用程序”事件日志之外什么都不做——即没有网络访问、没有自定义事件日志等。

我知道我可以使用内置的 Service 和 NetworkService 帐户,但由于网络策略到位,我可能无法使用这些帐户。

4

4 回答 4

83

两种方式:

  1. 编辑服务的属性并设置登录用户。将自动分配适当的权限。

  2. 手动设置:进入管理工具 -> 本地安全策略 -> 本地策略 -> 用户权限分配。编辑“作为服务登录”项并在那里添加您的域用户。

于 2008-10-07T14:16:24.603 回答
4

我知道该帐户需要具有“作为服务登录”权限。除此之外,我不确定。可以在这里找到作为服务登录的快速参考,这里有很多特定权限的信息。

于 2008-10-07T14:14:43.793 回答
2

“BypassTraverseChecking”意味着您可以直接访问任何深层子目录,即使您不具备对中间目录的所有中间访问权限,即它之上的所有目录都指向根级别。

于 2011-02-24T10:13:12.370 回答
1

感谢您的链接,克里斯。我经常想知道诸如“BypassTraverseChecking”之类的特权的具体影响,但从来没有费心去查找它们。

我在运行服务时遇到了有趣的问题,发现在管理员完成初始安装后它无法访问它的文件。在我发现文件问题之前,我一直认为除了作为服务登录之外它还需要一些东西。

  1. 禁用简单文件共享。
  2. 暂时将我的服务帐户设为管理员。
  3. 使用服务帐户获取文件的所有权。
  4. 从管理员组中删除服务帐户。
  5. 重启。

在取得所有权期间,有必要禁用从父目录继承权限并沿树递归地应用权限。

但是,无法找到“授予所有权”选项来避免将服务帐户临时设为管理员。

无论如何,我想我会发布这个,以防其他人走上我正在寻找安全策略问题的同一条道路,而这实际上只是文件系统权限。

于 2010-01-05T02:28:15.137 回答