service Windows ne peut pas accéder à un dossier partagé au démarrage jusqu'à démarré manuellement ou l'Explorateur Windows tripoté

StackOverflow https://stackoverflow.com/questions/1942060

Question

J'ai un service Windows en cours d'exécution dans le système local qui ne cesse de simplement essayer d'accéder à un fichier avec un chemin UNC de la forme \\ machine \ dossier \ file.txt jusqu'à ce qu'il réussisse. Il succède immédiatement quand je lance le service manuellement, mais au redémarrage, il reçoit une erreur système 53 (chemin réseau introuvable) jusqu'à ce que je fais quelque chose comme logoff ou « bidouille » avec Explorateur Windows tels que la double-cliquant sur un fichier texte sans rapport avec (bizarre, je sais). Mais il n'y a pas de truc fiable; Je ne sais pas ce qui déclenche à être soudainement capable de voir le dossier partagé.

Cependant, je suis tombé sur une « solution », apparemment fiable, qui est de tenter une CreateProcess sur « net use I: \\ machine \ dossier » de l'intérieur du service pour mapper le dossier partagé avant de tenter d'y accéder (je continue en utilisant le chemin UNC, pas moi :). L'appel net use semble déclencher immédiatement ma capacité à accéder au dossier partagé du service en dépit du fait que l'appel net use lui-même ne peut-être (je n'ai pas vérifié parce que vous n'êtes même pas censé être en mesure de tracer des commandes d'un service) .

Cela semble similaire à connexion de base de données ne fonctionne pas lorsque le service démarre au démarrage mais fonctionne quand il a commencé manuellement mais dans mon cas, il est un dossier partagé du réseau, plus je sais que cela peut aussi soudainement commencer à travailler juste dans les circonstances décrites ci-dessus.

Je ne pense pas que ce soit un problème d'autorisations, car elle démontre les capacités d'accès complet au dossier partagé quand il réussit à accéder. Mais je voudrais savoir la raison pour que je puisse le gérer correctement.

Était-ce utile?

La solution

Le compte LocalSystem ne dispose pas d'un réel connexion ou mot de passe et ainsi va tenter de se connecter au partage avec les informations d'identification d'ordinateur si sur un domaine, d'autre façon anonyme. Pour que cela fonctionne, la part devra permettre l'accès au compte d'ordinateur (généralement le nom d'hôte avec $ en annexe) ou autoriser l'accès invité sans mot de passe.

Une meilleure pratique serait probablement de créer un nouveau compte de domaine pour le service à exécuter dans, et définir des autorisations appropriée pour le nouveau compte.

Autres conseils

Avez-vous essayé de démarrer le service avec un ensemble d'informations d'identification de domaine?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top