首页 > 解决方案 > 以 Windows 登录用户身份从服务启动进程

问题描述

我有一个要从服务中开始的过程。该服务在本地系统帐户下运行,因为用户的密码每 3 个月更改一次。该进程在使用本地系统帐户启动时不起作用,因此它必须在 Windows 登录用户下运行。当然,我无法在服务中输入用户密码,因为它正在更改。有没有办法在登录用户下启动进程?我没有找到是否可以将 WindowsIdentity 与 StartInfo 一起使用。谢谢

标签: c#serviceprocess

解决方案


Windows Vista开始,服务就被禁止访问桌面(它们没有交互式会话)。虽然您可以覆盖它,但不建议这样做。您仍然可以使用Process 类从服务中通过交互式会话启动程序。但是正如您所说,没有用户帐户,这对您没有帮助。

同样在 Vista 中,我们获得了Windows Task Scheduler 2.0。它非常先进,可以在登录时进行操作(使用登录用户凭据)。以前由服务完成的一大堆操作实际上已经移入了Sheduler。https://www.sevenforums.com/tutorials/67503-task-create-run-program-startup-log.html


推荐阅读