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?
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
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