Question

Je suis en train de contrôler les services Windows qui sont installés dans un ordinateur distant. J'utilise la classe ServiceController.

J'ai ceci:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

Avec cela, je peux obtenir l'état du service Windows comme ceci:

string status = svc.Status.ToString();

Mais je ne peux pas contrôler le service Windows (en faisant svc.Start(); ou svc.Stop();). Je reçois l'exception suivante:

Impossible d'ouvrir le service Servicexxx sur ordinateur 'COMPUTER_NAME'

C'est normal, je suppose qu'il ya quelque chose à voir avec les droits d'accès. Mais comment? Je l'ai regardé dans Google mais n'a pas trouvé ce que je cherchais. Cependant, je lis souvent quelque chose lié à l'usurpation d'identité, mais je ne sais pas ce que cela signifie.

NB:. Les ordinateurs locaux et distants sont en cours d'exécution à la fois Win XP Pro

Était-ce utile?

La solution

Problème résolu.

usurpation d'identité consiste à faire passer un morceau de code en utilisant une certaine connexion / mot de passe. J'ai trouvé ce projet très utile: http://www.codeproject.com/ KB / cs / svcmgr.aspx? display = Imprimer qui m'a beaucoup aidé!

Autres conseils

Démarrage et arrêt des services est une opération privilégiée, normalement disponible uniquement aux administrateurs. Assurez-vous que le compte d'utilisateur que vous utilisez a des privilèges suffisants sur la machine cible. Poser plus de questions à ce sujet à serverfault.com

Afin de résoudre le problème, donnez votre nom les droits d'administrateur sur l'ordinateur distant / serveur comme domaine / nom d'utilisateur et vous serez en mesure d'exécuter le package depuis que j'ai eu avec succès le même problème et quand j'ai donné des autorisations à mes auto services ont été accessible sur le serveur distant

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