服务调用应用程序时的不同行为

时间:2013-11-22 15:53:58

标签: c# .net windows security service

当作为用户帐户执行应用程序(具有管理员权限)时,一切都按预期工作。

但是,当调用执行相同应用程序但是来自SYSTEM帐户的服务时,应用程序按预期运行,但是它找不到任何ODBC或打印机驱动程序。要允许服务调用应用程序,我使用的是the following code

我认为SYSTEM帐户具有完全权限,可以执行管理员用户帐户可以执行的任何操作。我唯一能想到的是,当会话从0切换到1时,链接代码中会发生一些事情,以便应用程序可以出现在用户的桌面上。

问题是什么?

这是我的服务代码,它调用上面链接(codeproject.com)中显示的ApplicationLoader类。

    protected override void OnStart(string[] args)
    {
        try
        {
            ApplicationLoader.StartProcessAndBypassUAC("C:\\", "\"C:\\MyApp.exe\"", out procInfo);
        }
        catch (Exception)
        {
        }
    }

1 个答案:

答案 0 :(得分:1)

问题是每个用户都配置了ODBC和打印机。由于您无法以SYSTEM身份登录,因此您必须通过代码添加这些连接,或者不使用SYSTEM帐户,可能只是专用用户帐户。