Caminho para o Windows Services?

2

Eu tenho um serviço que preciso iniciar como um usuário diferente para "Sistema local"

Existe um PATH específico do usuário que preciso adicionar ao caminho padrão para que o serviço funcione corretamente.

O PATH padrão é A; B; C; Eu configurei os usuários PATH X; para que, quando o usuário fizer logon interativamente, o PATH efetivo seja A; B; C; X; Isso foi feito definindo HKEY_USERS \ XXXXXXX \ Environment \ Path

Todos os caminhos estão em discos rígidos locais.

Quando o serviço é iniciado como usuário, posso assisti-lo na busca de DLLs necessárias com o ProcMon. Está procurando somente A; B; C; quando iniciado como um serviço.

Eu tentei alterar o tipo de serviço de 0x10 para 0x110, o que deve permitir a interação com a área de trabalho para ver se isso carregaria o ambiente dos usuários, mas não pareceu ajudar.

O Windows deve carregar as configurações de ambiente de um usuário ao iniciar serviços? Existe uma solução alternativa se esse for o comportamento padrão?

Obrigado

    
por Cephas 24.08.2009 / 07:24

4 respostas

0

Só para encerrar isso.

Eu escrevi isso em um formato genérico, pois suspeitei que estava lidando com um problema genérico de serviço do Windows.

No entanto, verifica-se que este é um problema com os próprios executáveis do serviço. Parece que a leitura do caminho do sistema e do caminho do usuário é de alguma forma dependente do executável do serviço.

Eu tenho dois serviços do mesmo fornecedor, um deles lê o sistema e o caminho do usuário, enquanto o outro apenas lê o caminho do sistema.

    
por 16.11.2009 / 23:38
2

O MS tem um programa que executa qualquer programa como um serviço . Um dos parâmetros é HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<name>\Parameters\AppDirectory , embora isso possa ser aplicado somente a esses serviços agrupados.

    
por 24.08.2009 / 23:10
0

É específico do Windows Server 2003, mas, mesmo assim, acho que isso pode responder à sua pergunta: link

    
por 24.08.2009 / 12:30
0

Você tentou usar o SRVANY para transformar um script, como um arquivo em lote, em um serviço e definir o ambiente antes de chamar o aplicativo desejado? Nota: você pode conceder o serviço stop / start / restart control se o script fizer o backup de processos e saídas subsequentes, já que o controlador de serviço verificará se o próprio script está "executando". Você também pode considerar a leitura do PATH a partir do registro do usuário no script e usar seu conteúdo para que o env não seja codificado no próprio script.

    
por 16.11.2009 / 00:45