【问题标题】:Windows service not starting for non admin userWindows 服务未为非管理员用户启动
【发布时间】:2014-02-24 09:14:38
【问题描述】:

我有一个 Windows 窗体应用程序的 exe,它放在每个登录用户的 AppData 文件夹中。我编写了一个 Windows 服务,它在一段时间后启动 exe,但问题是当另一个非管理员用户登录时它不会启动/停止。该服务不会从该用户的 App 数据文件夹启动 exe。我尝试使用 OnSesionChange 事件,在该事件中我停止/启动了登录/关闭事件的服务。我启用了所需的事件,例如

        AutoLog = true;
        CanHandlePowerEvent = true;
        CanPauseAndContinue = true;
        CanHandleSessionChangeEvent = true;
        CanShutdown = true;
        CanStop = true;

但是 SCM 中仍然没有显示服务状态。即使是非管理员用户也无法从 SCM 手动启动或停止服务。那么我应该如何允许每个登录用户停止/启动服务。我阅读了有关 SDDL 的信息,但不知道如何使用它。

【问题讨论】:

  • 应用程序应该以用户权限运行还是以管理员权限运行?

标签: c# winforms windows-services


【解决方案1】:

在windows服务中ServiceProcessInstallerAccount属性设置成什么? 将其设置为LocalSystem。将serviceinstallerStartType 设置为Automatic。这样它就会在操作系统启动时启动,而与登录的用户无关

如果需要请参考http://csharp-asp.blogspot.com/2008/10/how-to-create-simple-windows-service-in.html

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多