Eu tenho um serviço do Windows que requer acesso sob demanda a um compartilhamento CIFS remoto. Sempre que precisar acessar o compartilhamento, ele primeiro tenta "montá-lo" com as credenciais fornecidas,
NET USE \host\share password /USER:user
usa o conteúdo do compartilhamento e, em seguida, remove o compartilhamento.
NET USE \host\share /DELETE
Atualmente, o serviço funciona somente na primeira vez em que o compartilhamento é usado. Em tentativas subsequentes, não funciona e recebo o seguinte erro:
NET failed with exit code 2
No entanto, essa mesma lógica funciona perfeitamente quando executada manualmente a partir da linha de comando; só falha no contexto do serviço.
Minha pergunta é: existe uma maneira melhor e mais correta de lidar com compartilhamentos de rede em um serviço do Windows? De acordo com este artigo , NET USE
não é recomendado para uso em serviços, mesmo sem o uso de letras de unidade. Existe alguma alternativa para NET USE
eu deveria estar usando, ou o serviço só precisa ser executado como um usuário diferente do padrão LocalSystem
user?
Idealmente, o compartilhamento deve ser acessível apenas quando necessário diretamente; Por isso, gostaria de manter a lógica em que o compartilhamento é excluído sempre que possível.