c# - ¿Cómo controlar remotamente un servicio de Windows con ServiceController?
windows-services wmi (3)
Estoy tratando de controlar los Servicios de Windows que están instalados en una computadora remota. Estoy usando la clase ServiceController
.
Tengo esto:
ServiceController svc = new ServiceController("MyWindowsService", "COMPUTER_NAME");
Con esto, puedo obtener el estado del servicio de Windows así:
string status = svc.Status.ToString();
Pero no puedo controlar el servicio de Windows (haciendo svc.Start();
o svc.Stop();
). Me sale 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? Busqué 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: Los equipos locales y remotos ejecutan Win XP Pro.
Iniciar y detener servicios es una operación altamente privilegiada, normalmente disponible solo para administradores. Asegúrese de que la cuenta de usuario que utiliza tenga suficientes privilegios en la máquina de destino. Haga más preguntas al respecto en serverfault.com
Para resolver el problema, proporcione a su nombre los permisos de administrador en una computadora / servidor remotos como dominio / nombre de usuario y podrá ejecutar el paquete correctamente ya que tuve el mismo problema y cuando di permisos a mis autoservicios, se podía acceder a ellos en forma remota. servidor
Problema resuelto.
La suplantación consiste en ejecutar un fragmento de código con un determinado inicio de sesión / contraseña. Encontré este proyecto muy útil: http://www.codeproject.com/KB/cs/svcmgr.aspx?display=Print que me ayudó mucho.