Pregunta

Estoy tratando de controlar los servicios de Windows que están instalados en una computadora remota. Estoy usando el ServiceController clase.

Tengo esto:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

Con esto, puedo obtener el estado del servicio de Windows como este:

string status = svc.Status.ToString();

Pero no puedo controlar el servicio de Windows (haciendo svc.Start(); o svc.Stop();). Obtengo la siguiente excepción:

No se puede abrir el servicio ServiceXXX en la computadora 'Computer_Name'

Eso es normal, supongo que hay algo que ver con los permisos de acceso. ¿Pero cómo? He buscado en Google pero no encontré lo que estaba buscando. Sin embargo, a menudo leo algo relacionado con la suplantación, pero no sé qué significa eso.

NB: Las computadoras locales y remotas están ejecutando Win XP Pro.

¿Fue útil?

Solución

Problema resuelto.

La suplantación consiste en ejecutar un código utilizando un cierto inicio de sesión/contraseña. Encontré este proyecto muy útil: http://www.codeproject.com/kb/cs/svcmgr.aspx?display=print ¡Eso me ayudó mucho!

Otros consejos

Iniciar y detener los servicios es una operación altamente privilegiada, normalmente disponible solo para los administradores. Asegúrese de que la cuenta de usuario que use tenga suficientes privilegios en la máquina de destino. Haga más preguntas al respecto en serverfault.com

Para resolver el problema, le dé a su nombre los permisos de administración en la computadora/servidor remoto como dominio/nombre de usuario y podrá ejecutar el paquete con éxito ya que tuve el mismo problema y cuando di permisos a mis autoservicios fue accesible en remoto servidor

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top