2013-11-22 1 views
0

응용 프로그램을 사용자 권한으로 (관리 권한으로) 실행하면 모든 것이 정상적으로 작동합니다.응용 프로그램이 서비스에 의해 호출 될 때의 다른 동작

그러나 동일한 응용 프로그램을 실행하지만 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

문제는 ODBC와 프린터가 사용자별로 구성된다는 점입니다. SYSTEM으로 로그인 할 수 없으므로 코드를 통해 연결을 추가하거나 SYSTEM 계정을 사용하지 않아야합니다. 아마도이 용도로만 전용 사용자 계정을 사용해야 할 것입니다.

+0

해명 해 주셔서 감사합니다. 다른 접근 방식이 필요합니다. –

관련 문제