응용 프로그램을 사용자 권한으로 (관리 권한으로) 실행하면 모든 것이 정상적으로 작동합니다.응용 프로그램이 서비스에 의해 호출 될 때의 다른 동작
그러나 동일한 응용 프로그램을 실행하지만 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)
{
}
}
해명 해 주셔서 감사합니다. 다른 접근 방식이 필요합니다. –