2012-06-01 56 views
5

¿Cómo iniciar y detener el servicio de ventana sin tener privilegios de administrador?Servicio de Windows iniciar y detener sin privilegios de administrador

El inicio de mi aplicación debería iniciar mi servicio de la misma manera que tiene que detenerse una vez que se cierra. Puedo hacer esto usando "Service Controller"

Puedo instalar el servicio con privilegio de administrador pero para iniciar y detener el servicio no debería pedir privilegios de administrador.

¿Alguien puede decirme cómo puedo lograr esto usando C#?

+4

posible duplicado de http://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-account – Adam

+0

qué servicio está intentando iniciar y detener. qué sistema está utilizando –

+0

Noraml WCF service –

Respuesta

3

He descubierto la manera de dar permiso para iniciar/detener el servicio para usuarios que no son administradores. Podemos proporcionar una política de grupo para nuestro servicio, por lo que puede iniciarse/detenerse sin privilegios de administrador. Encontré dos enfoques para lograr esta tarea.

Enfoque 1:

  1. Crear la consola de “mmc.exe”
  2. Creado la plantilla de seguridad en blanco
  3. Creado una base de datos de seguridad para almacenar la información de la política
  4. cambiar el permiso de servicio el usuario que queremos dar un permiso
  5. Nuevo permiso de seguridad aplicado (lo referí blog)

Este enfoque funciona perfectamente bien, he creado dos cuentas de usuario no administrador en una máquina virtual y establecí el permiso de la cuenta de administrador, pude iniciar y detener el servicio de ambas cuentas de usuario no administrador. Sin embargo, este enfoque no fue una solución completa para el problema. Se trata de muchos pasos manuales. Entonces empiezo a buscar automatizar este proceso. Resultado de eso encontré el enfoque 2

Método 2: Conceda el permiso usando "Subinacl.exe", SubInACL es una herramienta de línea de comandos que permite a los administradores obtener información de seguridad sobre archivos, claves de registro y servicios, y transfiera esta información de usuario a usuario, de grupo local o global a grupo y de dominio a dominio.

Seguí el mismo ejemplo de crear dos cuentas de usuario no administrador y ejecutar el comando SUBINACL/SERVICE \ DomainName \ MyService/GRANT = DomainName \ USERS = TOP para que el usuario pueda iniciar/detener el servicio.

+0

Solo tenga en cuenta que hay un motivo este permiso no se concede a los usuarios normales de forma predeterminada. Es posible que esté abriendo vulnerabilidades de seguridad dentro de su red. – JDB

Cuestiones relacionadas