![为什么用户可以授予自己“作为服务登录”的权限?](https://linux22.com/image/552047/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%94%A8%E6%88%B7%E5%8F%AF%E4%BB%A5%E6%8E%88%E4%BA%88%E8%87%AA%E5%B7%B1%E2%80%9C%E4%BD%9C%E4%B8%BA%E6%9C%8D%E5%8A%A1%E7%99%BB%E5%BD%95%E2%80%9D%E7%9A%84%E6%9D%83%E9%99%90%EF%BC%9F.png)
本文描述了授予 Active Directory 用户“作为服务登录”权限应执行的(相对费力的)步骤。但是,如果我安装服务并手动指定我的 AD 帐户的登录凭据(服务属性 | 登录),Windows 会告诉我“帐户 [myaccount] 已被授予作为服务登录的权限。”然后,我可以使用我的帐户凭据运行该服务。但是,在随后重新安装服务时(或有时重新启动时),由于登录失败,该服务再次无法启动……直到我进入并再次手动输入我的凭据,该帐户才神奇地“被授予作为服务登录的权限”。此后,该服务可以再次使用我的帐户凭据启动。
这是怎么回事?为什么我显然有权即时授予自己此权利?如果我可以即时授予,为什么它不会保持授予状态,而我必须不断重新授予?请记住,我不是在问如何通过 Active Directory 授予某人此权利 - 我说的是,当您在登录窗口中输入凭据时,Windows 似乎会“自动授予”此权利。
答案1
听起来好像有一个组策略定义了被授予“作为服务登录”权限的帐户。由于您是管理员,因此您有权授予此权限,但是当组策略重新应用时,该权限将被删除。下次服务停止时,它将无法启动。
您应该更改策略的范围/过滤以使该机器免受该策略的约束,或者使用该策略授予必要的权限。
评论信息:要检查组策略是否正在应用设置,请使用策略向导的结果集 (rsop.msc)。
如果您要将此设置应用于多台计算机,或者无法删除定义此设置的现有策略,则使用组策略来定义它。有一个technet 文章解释了如何执行此操作。
要检查当前的本地安全设置,请使用 secpol.msc - 展开本地策略,然后选择用户权限分配。这将显示当前应用的设置。如果您有足够的访问权限并且没有有效的组策略,那么这将允许您编辑当前策略。如果添加/删除按钮被禁用,则策略当前定义此设置。
如果没有生效的策略,那么允许 Windows 授予用户该权限完全没有问题,这只是 Windows 提供的一个便捷功能。正如 Jez 所发现的,如果一项策略已经生效,那么反抗它就毫无意义。策略通常每隔几个小时重新应用一次,并且会不断取消您所做的任何更改。(尽管服务将继续工作,直到由于其他原因停止)。Jez 提到他认为服务是由安装时生成的 LUID 标识的。我不知道是不是这样,但作为服务登录用户权限不限于任何特定服务。因此,您想要以什么服务身份登录并不重要。让 Windows 为您分配权限的一个危险是,您可能会忘记删除以前的帐户,最终得到一长串具有作为服务登录权限但不需要该权限的帐户。
因此,为了更直接地回答 Jez 的评论,如果存在有效的策略,则没有必要找到绕过禁用的 secpol.msc UI 的方法。禁用 UI 是为了警告您,您所做的任何更改都不会保留。在这种情况下,编辑策略是前进的方向,要么授予特权,要么停止进行该设置,以便可以在本地分配它。
编辑:您似乎认为授予域用户此权限与授予本地用户此权限有所不同。事实并非如此。如果相关 PC/服务器未应用任何组策略,则打开 secpol.msc,转到相关权限,双击,单击添加,然后选择所需的帐户。我刚刚在加入域的笔记本电脑上尝试过此操作,添加用户对话框实际上默认为域。如果我想选择本地组,那么我必须更改位置。
如果您双击权限,那么我假设您会看到列表和添加/删除按钮,但这些按钮被禁用,因此您无法编辑列表。这不可能是因为您正在添加域帐户,因为您尚未选择是添加本地帐户还是域帐户。
我在工作中遇到了同样的问题,我安装的服务只在一台 PC 上运行,因此更改策略不是一种选择。我们将有问题的 PC 移至不适用任何策略的 OU,然后我就可以毫无问题地授予权限。
您之所以能够以迂回的方式授予权限,是因为策略只是禁用了 UI,它实际上并没有改变您拥有的权限。但它会定期重新应用自身,这就是设置被覆盖的原因。
答案2
该文章描述了 ADAM(Active Directory 应用程序模式),它与标准的 Active Directory 安装有很大不同……值得考虑。
发表意见时间 - 我还认为,当您安装(或重新安装)服务时,它会在注册表中为其生成一个 UID。它的某些设置可能与此相关,包括身份验证。
答案3
让我们弄清楚这一点 -
- 您的用户帐户下正在运行一项服务(在 services.msc 中,它会在此服务旁边显示您的用户帐户)
- 为了实现此功能,首先你需要授予你的帐户“登录即服务”权限
- 重新启动或重新安装服务后,服务无法启动并出现登录失败错误
- 要解决此问题,您只需在服务配置中重新输入您的凭据并启动它
这意味着您保存的凭据存在问题,而不是您定期丢失登录即服务权限。
首先,我建议创建一个新的用户帐户来运行此服务,而不是使用您的凭据,将帐户的密码设置为永不过期,并授予帐户登录服务权限。最佳做法是始终使用专用帐户来运行作为服务的软件,而不是重新利用用户帐户
然后看看是否再次遇到该问题,如果遇到,请尝试找出导致失败的具体原因,即每次重新启动服务器时是否都需要重新输入凭据?
另外,您为什么要定期重新安装该服务?这个软件还有其他问题吗?
答案4
这似乎不是一个正确的问题。您的密码在重新启动此服务之间是否有可能发生变化?如果是这样,您需要在服务设置中更改重置它。最好创建一个密码不会更改的服务帐户