c# - 以 Windows 登录用户身份从服务启动进程
问题描述
我有一个要从服务中开始的过程。该服务在本地系统帐户下运行,因为用户的密码每 3 个月更改一次。该进程在使用本地系统帐户启动时不起作用,因此它必须在 Windows 登录用户下运行。当然,我无法在服务中输入用户密码,因为它正在更改。有没有办法在登录用户下启动进程?我没有找到是否可以将 WindowsIdentity 与 StartInfo 一起使用。谢谢
解决方案
从Windows Vista开始,服务就被禁止访问桌面(它们没有交互式会话)。虽然您可以覆盖它,但不建议这样做。您仍然可以使用Process 类从服务中通过交互式会话启动程序。但是正如您所说,没有用户帐户,这对您没有帮助。
同样在 Vista 中,我们获得了Windows Task Scheduler 2.0。它非常先进,可以在登录时进行操作(使用登录用户凭据)。以前由服务完成的一大堆操作实际上已经移入了Sheduler。https://www.sevenforums.com/tutorials/67503-task-create-run-program-startup-log.html
推荐阅读
- android - 如何根据 PhilJay 的 MPAndroidChart 库在图表中的 x 轴分区值设置背景颜色?
- javascript - 无法使用 reducer 中的条件语句更改处于状态的数组的第二个值 --- Redux
- linux - 如何修改 netcat 命令行以一次发送多个请求
- javascript - 我该如何做这个 if 语句?
- python - 将复杂的 txt 文件(包括数组)读取到 Python
- laravel - 如何在编辑表单中捕获表上的 1 个列(id)
- javascript - WebGL:你怎么画一个五边形?
- python - 在 python 中使用 str(float) 保留重要的零
- javascript - 删除二维数组 Javascript 中的重复数字
- python - df.join() 上的 Pandas ValueError,然后是 pd.concat() 上的 TypeError