如果程序作为进程而不是服务运行,是否必须始终登录?

如果程序作为进程而不是服务运行,是否必须始终登录?

我很确定答案是肯定的,但我只是想澄清一下。

基本上,我感到疑惑,因为我工作的公司使用以流程形式运行的第三方产品。

出于安全原因,我希望将此服务器加入域,并让用户在需要处理问题时通过其域凭据登录。但是,我相当肯定这不可行,因为该应用程序以进程的形式运行,因此如果我退出管理员帐户,该程序将停止运行。

有人可以解释一下吗?

谢谢!

答案1

从技术上讲,“进程”是指任何正在运行的程序。这可能是服务(始终运行)或非服务进程。

首先,确定第三方程序到底采用什么类型的架构。

有些程序确实会在登录时开始运行,但实际上并不是服务。更复杂的程序分为两部分:始终运行的服务,以及登录时(或按需)启动的用户界面进程。从您的问题中无法明确第三方程序是其中哪一个。

如果第三方程序是服务(或具有服务组件),那么应该没问题。请记住,有些程序确实有两个部分:服务和 UI,这些程序的设计目的是让 UI 在用户登录和注销时出现和消失。

接下来,您可以尝试将其变成一项服务,即使它不是为此设计的。

如果程序只是一个 UI 进程,没有服务部分,那么无论如何,可能都可以临时将其作为服务运行。首先,如果您计划使用任何类型的远程桌面方案,那么这可能行不通(多用户方案,并且这种不支持 TS 的程序往往会崩溃)。

此时,可以使用以下程序将其作为服务运行srvany2k3 资源套件)。srvany是一种仅执行程序的服务,因此它充当非服务程序的服务主机。问题是,有些程序作为服务表现不佳(许多权限不同)。您可能必须将其配置为交互式服务,这会打开一个名为破碎攻击

所以,简而言之,这或许是可行的。我曾经这样做过一两次。但你可能决定最好还是不要去那里。

答案2

只要机器开启,服务就会运行 - 当然,只要它们被设置为自动。

因此,如果您需要运行某些东西,无论谁(如果有的话)登录,那么您应该将其作为服务运行。

计划任务也可以独立于当前用户运行。您只需为其提供一个登录帐户即可。但是,如果您的组策略是更改密码,则需要将此帐户排除在外(这是一个潜在的安全风险),或者在密码更改时必须更新任务。

答案3

如果该进程没有(太多)GUI,那么您可以考虑使用 Windows 管理工具包中的 srvany 将其转变为服务。

相关内容