当作为用户帐户执行应用程序(具有管理员权限)时,一切都按预期工作。
但是,当调用执行相同应用程序但是来自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)
{
}
}
答案 0 :(得分:1)
问题是每个用户都配置了ODBC和打印机。由于您无法以SYSTEM身份登录,因此您必须通过代码添加这些连接,或者不使用SYSTEM帐户,可能只是专用用户帐户。