Con Python, ¿cómo puedo obtener la lista de aplicaciones instaladas y la configuración de hardware de varias máquinas conectadas en una red?

Asumo una mezcla de máquinas Linux y Windows en la red.

Estas son las dos opciones que conozco:

  1. SSH
    Configure un servidor ssh en todas las máquinas. Luego, inicie sesión y ejecute el comando apropiado y obtenga la información.
  2. WinRM
    Solo para Windows.
    Habilite WinRM en máquinas con Windows, luego, conéctese a ellas de forma remota a través de WinRM y ejecute los comandos.

Las opciones anteriores le brindan una forma de ejecutar comandos en máquinas remotas.

Para obtener la lista de aplicaciones instaladas:

  1. Ventanas
    Busque la clave de registro adecuada. (¡Google es tu amigo!)
  2. Linux
    Busque los diversos directorios bin estándar.
    por ejemplo / bin, / usr / bin, ~ / bin, etc.
    Sería conveniente buscar todas las rutas en la variable de entorno “RUTA”.

Para obtener la configuración de hardware: tanto para Windows como para Linux, encontrará comandos según los detalles que esté buscando. Ejecútelos en las máquinas de destino y recopile la salida.

Puedes hacerlo fácilmente en BASH y Powershell. Si desea usar python, para ssh, puede usar algún paquete o ejecutar los comandos ssh desde python. Para WinRM, hay un paquete de Python.

Como referencia, estoy publicando un enlace a mi artículo de blog que describe cómo cambiar las redes wifi en varias máquinas a la vez: Cambiar las redes WiFi a través de la línea de comandos en varias máquinas (Linux / Windows) a la vez

Esto demuestra el uso de WinRM con python para ejecutar scripts en máquinas remotas de Windows.

Puede usar el módulo de plataforma [1] como:

>>> plataforma de importación
>>> platform.machine ()
‘x86’
>>> plataforma.version ()
‘5.1.2600’
>>> plataforma.plataforma ()
‘Windows-XP-5.1.2600-SP2’
>>> platform.uname ()
(‘Windows’, ‘nombre’, ‘XP’, ‘5.1.2600’, ‘x86’, ‘x86 Family 6 Modelo 15 Stepping 6, GenuineIntel’)
>>> plataforma.sistema ()
‘Windows’
>>> plataforma.procesador ()
‘x86 Familia 6 Modelo 15 Paso 6, GenuineIntel’

Notas al pie

[1] 16.14. plataforma – Acceso a los datos de identificación de la plataforma subyacente – Documentación de Python 3.6.1

More Interesting

¿Qué sucede si se altera la firma digital y los datos que se envían para que el receptor pueda aceptarlos? ¿Es eso posible?

¿Por qué Ethernet superó a las redes Token Ring?

¿Responden todos los dispositivos cuando se inunda un conmutador de red? ¿O solo el dispositivo cuya dirección MAC está en la MAC de destino?

¿Qué es la latencia de tiempo de acceso?

¿Cuál es la diferencia entre MPL y VPL?

¿Qué es el especialista en informática empresarial? ¿Y dónde puedo obtener información al respecto?

¿Existe un tutorial para el trazador de paquetes que también me enseñe conceptos de redes?

Cómo publicar un blog que no se puede rastrear fácilmente con una dirección IP

¿Cuánto ancho de banda necesito para 4 sesiones de transmisión?

Si se puede acceder a 'localhost' sin una conexión a Internet, ¿por qué los programadores prueban sus programas haciendo ping a 'localhost' y no a otro host / servidor?

¿Es seguro asumir que todas las computadoras modernas pueden escuchar y conectarse en el host local?

¿Cómo haría para enviar comandos TCP a través de una conexión SSL alojada por un proceso diferente (en la misma computadora)? ¿Cómo harías para registrar la misma conexión?

¿Qué podría suceder en una red definida por software si el controlador centralizado principal se rompiera?

He completado el 12º. Tengo experiencia en la red informática. ¿Puedo obtener la certificación CCNA? ¿Cuál es la calificación?

¿Es seguro para mí cambiar el servidor DNS de mi enrutador al que me pidió un servicio de Internet?