![如果程序作为进程而不是服务运行,是否必须始终登录?](https://linux22.com/image/519568/%E5%A6%82%E6%9E%9C%E7%A8%8B%E5%BA%8F%E4%BD%9C%E4%B8%BA%E8%BF%9B%E7%A8%8B%E8%80%8C%E4%B8%8D%E6%98%AF%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C%EF%BC%8C%E6%98%AF%E5%90%A6%E5%BF%85%E9%A1%BB%E5%A7%8B%E7%BB%88%E7%99%BB%E5%BD%95%EF%BC%9F.png)
我很确定答案是肯定的,但我只是想澄清一下。
基本上,我感到疑惑,因为我工作的公司使用以流程形式运行的第三方产品。
出于安全原因,我希望将此服务器加入域,并让用户在需要处理问题时通过其域凭据登录。但是,我相当肯定这不可行,因为该应用程序以进程的形式运行,因此如果我退出管理员帐户,该程序将停止运行。
有人可以解释一下吗?
谢谢!
答案1
从技术上讲,“进程”是指任何正在运行的程序。这可能是服务(始终运行)或非服务进程。
首先,确定第三方程序到底采用什么类型的架构。
有些程序确实会在登录时开始运行,但实际上并不是服务。更复杂的程序分为两部分:始终运行的服务,以及登录时(或按需)启动的用户界面进程。从您的问题中无法明确第三方程序是其中哪一个。
如果第三方程序是服务(或具有服务组件),那么应该没问题。请记住,有些程序确实有两个部分:服务和 UI,这些程序的设计目的是让 UI 在用户登录和注销时出现和消失。
接下来,您可以尝试将其变成一项服务,即使它不是为此设计的。
如果程序只是一个 UI 进程,没有服务部分,那么无论如何,可能都可以临时将其作为服务运行。首先,如果您计划使用任何类型的远程桌面方案,那么这可能行不通(多用户方案,并且这种不支持 TS 的程序往往会崩溃)。
此时,可以使用以下程序将其作为服务运行srvany
:2k3 资源套件)。srvany
是一种仅执行程序的服务,因此它充当非服务程序的服务主机。问题是,有些程序作为服务表现不佳(许多权限不同)。您可能必须将其配置为交互式服务,这会打开一个名为破碎攻击。
所以,简而言之,这或许是可行的。我曾经这样做过一两次。但你可能决定最好还是不要去那里。
答案2
只要机器开启,服务就会运行 - 当然,只要它们被设置为自动。
因此,如果您需要运行某些东西,无论谁(如果有的话)登录,那么您应该将其作为服务运行。
计划任务也可以独立于当前用户运行。您只需为其提供一个登录帐户即可。但是,如果您的组策略是更改密码,则需要将此帐户排除在外(这是一个潜在的安全风险),或者在密码更改时必须更新任务。
答案3
如果该进程没有(太多)GUI,那么您可以考虑使用 Windows 管理工具包中的 srvany 将其转变为服务。