Cómo reiniciar de forma remota un servicio en un equipo protegido con contraseña usando Python?

StackOverflow https://stackoverflow.com/questions/1332853

  •  19-09-2019
  •  | 
  •  

Pregunta

decidí abordar Python como un nuevo lenguaje para aprender. Lo primero que quiero hacer es el código de un script que me permitirá reiniciar remotamente los servicios en otras máquinas de mi máquina local. ¿Cómo voy a lograr esto cuando la máquina remota requiere un nombre de usuario y contraseña para iniciar la sesión? No necesito una solución completa que debe darse a mí, pero tal vez algunas sugerencias sobre lo que las bibliotecas que debe utilizar o cualquier problema que necesita para hacer frente a la hora de escribir el guión.

EDIT: Todas las máquinas remotas están utilizando Windows 2003

¿Fue útil?

Solución

Las personas suelen recomendar paramiko como una biblioteca para hacer ssh (y estoy suponiendo que usted ssh necesita para entrar en la máquina remota). Hay una buena tutorial por ello.

Editar : En Windows, la manera más fácil es probablemente usar SysInternals utilidad psservice , al ser invocado con os.system; esto puede iniciar un servicio remoto, y acepta iniciar sesión credenciales.

Si desea hacerlo directamente en Python, es necesario win32service.StartService . Antes de eso, es necesario abrir el administrador de servicios a distancia, y luego el servicio remoto. Antes de eso, tiene que hacerse pasar por el usuario con el que desea realizar la operación, consulte el ejemplo .

Otros consejos

Tome un vistazo a wich se basa en paramiko . Esto es realmente una buena herramienta para automatizar tareas remotas con Python.

Documentación Tela le mostrará lo fácil que es utilizar.

¿Qué tipo de sistema operativo es el funcionamiento de la máquina remota? Si se trata de Linux, ssh(1) ejecutar mediante el subprocess módulo .

Si se trata de ventanas, a continuación, obtener la . Ellos le permiten llamar a las funciones de Windows. Debe haber una API para permitir a los servicios de acceso. Si no lo hacen, hay una herramienta llamada sc ( docs ) que se puede ejecutar mediante el módulo de subproceso.

¿Qué sistema operativo para los equipos de destino? Si 'servicio' es 'servicio de Windows NT', y su máquina local también es de Windows, que haría uso de IronPython como la implementación del lenguaje Python y llamar directamente a las instalaciones de WMI en el espacio de nombres .net System.Management - que están destinados para la administración remota de esa manera.

En Windows, el WMI módulo ahora es fantástico para esto.

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