프로그램을 Windows 7 서비스로 실행할 때 HOMEPATH 변수는 어디에 매핑됩니까?

프로그램을 Windows 7 서비스로 실행할 때 HOMEPATH 변수는 어디에 매핑됩니까?

Windows 7 서비스로 실행되는 프로그램이 있습니다. 프로그램에서 HOMEPATH 환경 변수는 파일 위치를 설정하는 데 사용됩니다. 일반적으로 프로그램이 단순히 명령줄에서 실행되면 HOMEPATH는 로그인한 사용자의 홈 디렉터리에 매핑됩니다. 그러나 Windows 서비스에서는 그렇지 않습니다.

그렇다면 프로그램이 서비스로 실행되고 HOMEPATH 환경 변수를 사용하는 경우 해당 변수는 어디에 매핑됩니까?

답변1

서비스는 일반적 으로 세 가지 서비스 계정 중 하나에서 실행됩니다 Local Service Local System. Network ServiceHOMEPATH 변수는 모두없는.


조사하다


특정 시나리오의 경우 서비스에서 이벤트 로그 항목을 작성하고 HOMEPATH 변수에 저장한 내용을 인쇄하도록 할 수 있습니다. C#에서는 다음을 사용할 수 있습니다.

protected override void OnStart(string[] args)
{
    EventLog.WriteEntry("The HomePath for this service is '" + Environment.GetEnvironmentVariable("HOMEPATH") + "'", EventLogEntryType.Information);
}

가능한 해결책


서비스 속성 창이나 서비스 설치 구성에서 서비스가 사용하는 계정(예: 사용자 계정)을 설정할 수 있습니다. 내 사용자 계정으로 테스트했을 때 이벤트 로그 항목이 표시되었습니다 The HomePath for this service is '\Users\Admin-PC'.
여기에 이미지 설명을 입력하세요. 여기에 이미지 설명을 입력하세요

관련 정보