我有一个自定义类型 .acust,它与一个自制应用程序相关联。只要它是“仅在用户登录时运行”,调度就可以正常工作,但不能作为“无论用户是否登录都运行”的服务工作。
一个明显的解决方法是,不运行 .acust 文件,而是使用应用程序触发任务并传递 xxxx.acust 参数,但我仍然希望在任务作为服务运行时使关联工作。这可能吗?
至少在 Windows Server 2012 和 Windows 10 中会出现此问题。Windows 2008 上没有出现此问题
答案1
不,不可能将不可执行文件作为服务运行,因为它应该与服务管理器交互,提供其状态等。
但是您仍然可以通过将 .acust 脚本的文件名传递给程序可执行文件来实现您的需要。
你实际上不能使用“任务计划程序”来创建服务,因此你需要下载 NSSM - 非吸吮服务管理器。将可执行文件解压到安全的地方(我建议将其解压到 c:\Windows),因为该文件将启动新服务。之后发出以下命令(假设nssm.exe
在系统 PATH 中)nssm install RunAcust
(这将打开一个 nssm 窗口),您可以在其中指定所需的一切)。