2010-10-01 12 views
5

He escrito un servicio que debería iniciar/detener otros servicios. Este es el código que estoy usando:¿Qué permiso de usuario necesita un servicio para iniciar/detener otros servicios?

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

Esta es la pila de llamadas de la excepción. (Lo siento, pero el mensaje se localiza en alemán, pero eso no es relevante para la comprensión de mi problema)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem 

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

Actualmente estoy ejecutando el servicio bajo 'NetWorkService'. Supongo que esa cuenta no es suficiente con los derechos de usuario necesarios.
Voy a crear un nuevo usuario que requiera la autorización más mínima para iniciar/detener los servicios arbitrarios.
¿Qué permisos necesita este nuevo useraccount?

+0

Quién votó para cerrar esto? ¿Desea comentar? Creo que esta pregunta es más adecuada en Stackoverflow que en Serverfault porque esta pregunta se ve desde la vista de un programador y no desde la de un administrador. – citronas

+0

Vote para cerrar como pertenece en Superusuario. Esta no es una pregunta de programación. Su objetivo es crear un nuevo usuario con permiso para iniciar/detener servicios. Independientemente de si está creando este usuario mediante programación, determinar qué configuración necesita el usuario es una pregunta de Windows, no una pregunta de C#. – Brian

Respuesta

1

¿Necesita poder iniciar y detener servicios arbitrarios, o un conjunto específico?

Para un control más detallado puede establecer permisos en un servicio específico. Ver http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx?CommentPosted=true#commentmessage

Los miembros del grupo de usuarios avanzados tienen cierta capacidad para iniciar y detener servicios. Ver http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_default_settings.mspx?mfr=true

Cuestiones relacionadas