Os serviços geralmente são executados em uma das três contas de serviço, Local Service
Local System
e Network Service
. Para todos os quais a variável HOMEPATH é null .
Para investigar
Para o seu cenário específico, você pode fazer o serviço gravar uma entrada no registro de eventos e imprimir o que ela armazena na variável HOMEPATH. Em C # você poderia usar:
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("The HomePath for this service is '" + Environment.GetEnvironmentVariable("HOMEPATH") + "'", EventLogEntryType.Information);
}
Soluções possíveis
Você pode definir qual conta um serviço usa (sua conta de usuário, por exemplo), na janela de propriedades de serviços ou na configuração de instalação do serviço. Quando testei com minha conta de usuário, a entrada do log de eventos foi exibida The HomePath for this service is '\Users\Admin-PC'
.
.