es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python: winrm [WinError 10061] No se pudo establecer una conexión porque la máquina de destino la rechazó activamente.

Tienes el siguiente código simple que intenta conectarse a una máquina de Windows que puedes conectarte usando el escritorio remoto de Windows.

Pero en Python, usando pywinrm, obtuve el siguiente error:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.XX.XX.XX', port=5986): Max retries exceeded with url: /wsman (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001F44F92A6D0>: Failed to establish a new connection: [WinError 10061] No se pudo establecer una nueva conexión: se rechazó la conexión del equipo de destino'))

Tengo el siguiente código:

import winrm
session = winrm.Session('10.XX.XX.XX', auth=('admin','xxxxxx'), transport='ntlm', server_cert_validation='ignore') ## funciona
is_shell=True
while is_shell:
is_dir_get_or_create = session.run_cmd(r'if exist "C:\Temp\" (echo yes) else (echo no && mkdir C:\Temp)') ## falló
is_shell=False

Por favor, ayúdame.

Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando establecer una conexión a una máquina Windows usando pywinrm, pero estás recibiendo un error indicando que la máquina objetivo está rechazando activamente la conexión. Una posibilidad es que el servicio WinRM no esté habilitado en la máquina objetivo o que el cortafuegos esté bloqueando la conexión.

    Estos son los pasos que puedes seguir para solucionar el problema:

    1. Asegúrate de que el servicio WinRM se está ejecutando en la máquina objetivo. Puedes comprobarlo ejecutando el siguiente comando en el símbolo del sistema o PowerShell:
      sc query winrm
      

      Si el servicio no se está ejecutando, inícialo ejecutando el siguiente comando:

      net start winrm
      
    2. Comprueba si el puerto WinRM (5986 o 5985) está abierto en el cortafuegos de la máquina objetivo. Puedes abrirlo ejecutando el siguiente comando en el símbolo del sistema o PowerShell:
      netsh advfirewall firewall add rule name="WinRM-HTTPS" dir=in action=allow protocol=TCP localport=5986
      

      Si estás usando HTTP en lugar de HTTPS, reemplaza 5986 por 5985.

    3. Verifica que la dirección IP de la máquina objetivo sea correcta y se pueda alcanzar desde la máquina en la que estás ejecutando el script Python.

    Una vez hayas verificado estos pasos, intenta ejecutar el script Python de nuevo y comprueba si se conecta correctamente. Si aún tienes problemas, puedes consultar la documentación de pywinrm, la guía de solución de problemas de WinRM o solicitar ayuda a un administrador de sistemas de Windows.

Comments are closed.