我创build了一个Windows服务,在后台启动一个程序,并确保一个Web应用程序不需要进一步的安装。
当我在pipe理员帐户中启动这个服务时,后台程序启动很好,并且以用户名运行
一切工作完美,我可以访问该网站没有额外的信息等。
当我注销时,它也可以工作,并使用其他pipe理员login。
但是,它不在域的标准用户下工作。 该进程确实启动,但不在SYSTEM(但空白的用户名)下,所以后台程序启动,但没有正确的用户名。
为什么是这样? 而我需要改变什么,以便所有login的标准用户也有这个服务作为pipe理员运行?
我怀疑问题是这样的:SYSTEM帐户只有本地(不是域或networking)身份validation,所以当正常的用户login时,它不能产生或命令任何已经在提升的权限运行的进程。 这是一个function,而不是一个错误 – 不能有用户或来宾帐户调用根级别的进程没有某种抽象层,以防止这些用户/客人提升自己。
如果我可以提供一种替代方法:创build一个具有适当权限的帐户,以修改Web应用程序,pipe理它等等,并根据这些信誉运行您的服务。 locking这个帐户交互使用(没有人可以使用它login),并确保它没有权利整个系统,只是networking应用程序和适当的资源,包括您的升级检查程序。
由于您正在检查Web应用程序的更新状态,而不是触发用户login检查,请将其作为计划任务(再次使用上述服务帐户)运行。 这样,用户点击该站点时就不需要运行特定的服务来启动升级后台任务,而是按照设定的时间表进行扫描和升级,并已在后台进行升级。