2010-09-06 9 views
1

J'ai créé un service Windows qui a une fonction qui crée un nouveau fichier.Un service Windows exécuté sous Système local peut-il créer de nouveaux fichiers sur l'ordinateur sur lequel il s'exécute?

Il est exécuté sous "Compte système local" avec "Autoriser le service à interagir avec le bureau" défini sur true.

Lors de l'exécution de ce compte, les fichiers peuvent-ils être créés localement?

Je ne peux pas déboguer ceci pour obtenir l'erreur exacte car il s'exécute dans un environnement Lab Manager qui n'a pas de débogueur approprié installé.

Il me semble être un problème d'autorisations basé sur le moment où le service se bloque de sorte que la réponse simple dont j'ai besoin avant d'essayer quoi que ce soit d'autre est ce compte peut créer des fichiers sur le système local?

Je n'arrive pas à trouver un site avec la réponse ...?

Toute aide serait grandement appréciée.

+0

Où voulez-vous écrire ce fichier? –

+0

Sur un disque dur local, le lecteur est cependant partagé sur le réseau. Le lecteur, le dossier, etc. sont sur la même machine que le service, mais ce dossier est partagé avec d'autres machines sur le réseau si cela fait une différence –

Répondre

1

"Autoriser le service à interagir avec le bureau" est uniquement nécessaire pour pouvoir afficher les messages d'un utilisateur connecté.

Le système local doit avoir un accès en écriture aux disques durs locaux. Vous ne pouvez pas accéder aux lecteurs réseau mappés ou à d'autres ressources réseau d'ailleurs.

+0

Qu'en est-il d'un dossier local partagé sur le réseau? Cela deviendrait-il une ressource réseau aux yeux de Windows même si le dossier se trouve sur la machine locale? –

+2

Je ne suis pas sûr si vous utilisez le chemin d'accès UNC ("\\ nom_ordinateur \ nom_partage"). L'accès à l'aide d'un chemin local ("C: \ sharedfolder") devrait fonctionner correctement. – jgauffin

+0

Si vous appartenez à un domaine, le service s'authentifie auprès du compte d'ordinateur de domaine auprès d'autres systèmes. Si ce n'est pas le cas, vous devez utiliser NetUseAdd pour spécifier un nom d'utilisateur et un mot de passe à distance pour configurer le chemin distant. –