Windows 服务以 AD 用户的 SYSTEM 身份运行

Windows 服务以 AD 用户的 SYSTEM 身份运行

我创建了一个 Windows 服务,它在后台启动一个程序并确保 Web 应用程序不需要进一步安装。

当我以管理员帐户启动此服务时,后台程序会顺利启动并以用户名运行

https://i.stack.imgur.com/bEZaW.png

一切都很完美,我可以直接访问该网站而不需要额外的信息等等。

当我注销并以不同的管理员身份登录时,它也有效。

但是,它在域的标准用户下不起作用。该过程确实启动了,但不是在系统下(而是空白用户名),因此后台程序启动了,但没有使用正确的用户名。

这是为什么?我需要做哪些更改才能让所有登录的标准用户也能以管理员身份运行此服务?

答案1

我怀疑问题是这样的:SYSTEM 帐户仅具有本地(而非域或网络)身份验证,因此当普通用户登录时,它无法生成或命令任何已以提升权限运行的进程。这是一个功能,而不是错误 - 不能让用户或来宾帐户在没有某种抽象层的情况下调用根级进程来阻止这些用户/来宾提升自己的权限。

如果我可以提供另一种方法:创建一个具有适当权限的帐户来修改 Web 应用程序、管理它等,并在这些凭据下运行您的服务。锁定此帐户以进行交互式使用(没有人可以使用它登录),并确保它无权访问整个系统,只有 Web 应用程序和适当的资源,包括您的升级检查程序。

由于您要检查 Web 应用的更新状态,而不是触发用户登录检查,请将其作为计划任务运行(再次使用上面的服务帐户)。这样,当用户访问网站时,您不需要运行特定服务来启动升级后台任务,而是按照设定的时间表在后台进行扫描和升级。

相关内容