2009-07-21 7 views
1

Oui je pourrais google ceci mais je suis un peu paresseux. J'ai besoin de contrôler à distance les services Windows sur une autre machine. Est-ce que la classe ServiceController me le permet? Quelles sont les restrictions? Puis-je démarrer/arrêter/modifier à distance les informations "Exécuter en tant que", c'est-à-dire changer un mot de passe qui doit expirer?Classes .Net pour contrôler les services sur une machine distante?

Je vais essayer de donner aux utilisateurs un tableau de bord de site Web ASP.Net pour contrôler plusieurs services qui s'exécutent sur leur machine locale sous leur propre compte (ils sont tous des administrateurs locaux sur leur machine). Ceci est intégré avec d'autres fonctionnalités, donc je ne cherche pas à créer une distribution qui pourrait fonctionner localement pour eux. Utilisera l'authentification Windows et usurera l'identité de l'utilisateur pour effectuer les modifications. Quels problèmes, le cas échéant, suis-je susceptible de rencontrer avec cela?

Vive

Répondre

8
var sc = new ServiceController("servicename", "othermachinename"); 

Le compte en cours d'exécution du code aura besoin d'autorisations administratives sur l'ordinateur cible afin d'interagir avec le service. L'usurpation d'identité fonctionnera. Je l'ai seulement utilisé dans une situation assez étroitement contrôlée (c'est-à-dire s'exécutant à partir d'un compte d'utilisateur avec les mêmes informations d'identification sur les machines source/cible), mais d'après mon expérience, toutes les opérations fonctionnent comme prévu.

Si vous souhaitez modifier les informations d'identification du service, etc., vous devrez utiliser WMI - ce qui n'est pas aussi simple que d'utiliser la classe ServiceController. Voir la classe ManagementObject pour plus d'informations.

J'ai trouvé this link qui décrit l'utilisation de WMI pour modifier les informations d'identification du service.

+0

+1 Je l'utilise aussi; l'a enveloppé dans une application de console afin que je puisse utiliser 'runas' pour démarrer/arrêter les services sur des machines distantes avec un compte utilisateur donné. –

+0

merci - est-ce que l'un d'entre vous peut me donner des idées sur WMI/ManagementObject? – Ray

+0

Arj: vérifiez le lien dans ma réponse - il a un exemple WMI. –

0

@MadSeb -

Comme je l'ai dit dans mon other post:

si vous utilisez C# ou VB.Net, puis utilisez WMI

Sinon, "SC" est probablement le meilleur outil utiliser à partir d'une ligne de commande ou d'un fichier .bat.

Questions connexes