我有一个Windows窗体应用程序的exe,它放在每个登录用户的AppData文件夹中。我编写了一个Windows服务,在一段时间间隔后启动exe,但问题是当另一个非管理员用户登录时它不会启动/停止。该服务不会从该用户App数据文件夹启动exe。我尝试使用OnSesionChange事件,我在登录/关闭事件中停止/启动服务。我启用了所需的事件,如
AutoLog = true;
CanHandlePowerEvent = true;
CanPauseAndContinue = true;
CanHandleSessionChangeEvent = true;
CanShutdown = true;
CanStop = true;
但SCM中仍未显示服务状态。即使非管理员用户无法从SCM手动启动或停止服务。那么我应该如何允许每个登录用户停止/启动服务。我读了SDDL但没有得到如何使用它。
答案 0 :(得分:0)
在Windows服务中ServiceProcessInstaller
的{{1}}属性设置为什么?
将其设置为Account
。将LocalSystem
的{{1}}设置为serviceinstaller
。这样无论登录用户是谁,无论何时启动操作系统,它都会启动
如果需要,请参阅此http://csharp-asp.blogspot.com/2008/10/how-to-create-simple-windows-service-in.html