2011-05-02 2 views
0

Windows 서비스가 C#으로 작성되었습니다. 이 서비스는 여러 MTA 스레드를 생성합니다. 이 스레드들 각각에서 out of process COM 클래스가 인스턴스화됩니다. 서비스가 현재 사용자로 실행되도록 설정했습니다 (적절한 자격 증명을 추가). 서비스가 시작되면 작업 관리자에서 서비스가 내 사용자로 실행되고 나타납니다. 서비스가 로컬 로밍 사용자 디렉터리에 대한 검사를 수행하면 예상대로 내 사용자 디렉터리를 반환합니다. out-of-process exe로 실행중인 COM 클래스가이 검사를 수행하면 Windows \ System32 \ Config \ systemprofile \ AppData \ Roaming에 경로가 반환됩니다.Windows 서비스 시작 프로세스 중 COM 서버 - CSIDL_APPDATA가 다른 사용자 경로로 반환

여기에 무슨 일이 일어나고 있는지, 그리고 좀 더 구체적으로 말해서 프로세스 서버를 서비스 사용자로 실행할 수있는 방법을 알려줄 수 있습니까? 내가 작업 관리자에서 체크하고 작업 관리자에 따르면 exe는 같은 세션 (같은 세션에서) 서비스로 실행됩니다. OS가 요인이지만, 나는 모두 비스타 32 (SP2)에이를 보았다 및 Win7에 64 (SP1)

답변

1

당신은 서버가 RunAs를 사용하여 특정 계정으로 실행을 얻을 수 있다면

확실하지. 그다지 융통성이 없지만 여기서 원하는 것을하는 것처럼 보입니다.