De quelle autorisation d’utilisateur un service a-t-il besoin pour démarrer / arrêter d’autres services?

J’ai écrit un service qui devrait démarrer / arrêter d’autres services. C’est le code que j’utilise:

ServiceController sc = new ServiceController("servicename"); if(sc.Status != ServiceControllerStatus.Running) { sc.Start(); } 

C’est la stack d’appels de l’exception. (Désolé, mais le message est localisé en allemand, mais ce n’est pas pertinent pour comprendre mon problème)

 System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem 

Ordinateur . geöffnet werden. —> System.ComponentModel.Win32Exception: Zugriff verweigert
— Ende der internen Ausnahmestapelüberwachung —
bei System.ServiceProcess.ServiceController.GetServiceHandle (Int32 désiréeAccess)
entre System.ServiceProcess.ServiceController.Start (Ssortingng [] args)
bei System.ServiceProcess.ServiceController.Start ()

Actuellement, j’exécute le service sous “Networkservice”. Je suppose que ce compte ne suffit pas aux droits d’utilisateur nécessaires.
Je vais créer un nouvel utilisateur avec le minimum d’permissions requirejs pour démarrer / arrêter des services arbitraires.
De quelles permissions ce nouveau compte utilisateur a-t-il besoin?

Faut-il pouvoir démarrer et arrêter des services arbitraires ou un ensemble spécifique?

Pour un contrôle plus fin, vous pouvez définir des permissions pour un service spécifique. Voir http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx?CommentPosted=true#commentmessage

Les membres du groupe “utilisateurs expérimentés” ont une certaine capacité à démarrer et à arrêter des services. Voir http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_default_settings.mspx?mfr=true