2010-10-01 3 views
5

J'ai écrit un service qui devrait démarrer/arrêter d'autres services. Ce est le code que je utilise:De quelle permission d'utilisateur un service a-t-il besoin pour démarrer/arrêter d'autres services?

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

C'est le callstack 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 

Computer. geöffnet werden. ---> System.ComponentModel.Win32Exception: Zugriff verweigert
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.ServiceProcess.ServiceController.GetServiceHandle (Int32 DesiredAccess)
bei System.ServiceProcess.ServiceController. Démarrer (String [] args)
bei System.ServiceProcess.ServiceController.Start()

Actuellement, je suis en cours d'exécution du service sous 'NETWORKSERVICE'. Je suppose que ce compte ne suffit pas les droits d'utilisateur nécessaires.
Je vais créer un nouvel utilisateur que l'autorisation la plus minimale requise pour démarrer/arrêter les services arbitraires.
De quelles autorisations ce nouveau compte utilisateur a-t-il besoin?

+0

Qui a voté pour la clôture? Je pense que cette question est plus appropriée sur Stackoverflow que sur Serverfault parce que cette question est vue depuis la vue d'un programmeur et non pas celle d'un administrateur. – citronas

+0

Votez pour fermer comme sur Superuser. Ce n'est pas une question de programmation. Votre but est de créer un nouvel utilisateur avec la permission de démarrer/arrêter les services. Indépendamment du fait que vous créez cet utilisateur par programme, la détermination de l'installation dont cet utilisateur a besoin est une question Windows, pas une question C#. – Brian

Répondre

1

A-t-il besoin de pouvoir démarrer et arrêter des services arbitraires ou un ensemble spécifique?

Pour un contrôle plus précis, vous pouvez définir des autorisations sur 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 avec pouvoir' ont la possibilité de démarrer et d'arrêter des services. Voir http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_default_settings.mspx?mfr=true

Questions connexes