![Windows 服务仅在登录时运行](https://linux22.com/image/556079/Windows%20%E6%9C%8D%E5%8A%A1%E4%BB%85%E5%9C%A8%E7%99%BB%E5%BD%95%E6%97%B6%E8%BF%90%E8%A1%8C.png)
我正在尝试将 EXE 文件作为服务运行,而没有用户登录到服务器。我已创建该服务,并且它启动时没有问题。
问题是,只有当用户登录时,服务才能正常运行。无论服务以管理员还是受限用户身份运行,此行为都是相同的。
EXE 将文件从一个目录复制到另一个目录。我验证了用户对这两个目录都有权限。
如果我以用户身份登录并运行 EXE 文件,它会复制文件。是否有任何 Windows 权限(组策略或本地设置)可能阻止 EXE 文件作为服务运行?
答案1
服务 exe 需要专门编写为服务——启动以确保与服务控制管理器 (SCM) 的集成完全不同。
这与 GUI 应用程序和命令行应用程序之间的区别是一样的。
通常使用命令行开关可以支持多种“操作模式”,但是这种情况很少发生。
如果该 exe 未写为服务(您应该看到有关由于未与 SCM 正确交互而导致其被关闭的事件日志条目),那么请考虑使用任务计划程序来执行它。