#python-3.x #winrm
Вопрос:
У меня есть приведенный ниже простой код, который пытается подключить одну машину Windows, к которой я могу подключиться с помощью rdp(удаленный рабочий стол) Windows
Но в python, использующем pywinrm, я получил следующую ошибку
requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.XX.XX.XX', port=5986): Max retries exceeded with url: /wsman (Caused by NewConnectionError('lt;urllib3.connection.HTTPConnection object at 0x000001F44F92A6D0gt;: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))
У меня есть код удара
import winrm session = winrm.Session('10.XX.XX.XX', auth=('admin','xxxxxx'), transport='ntlm', server_cert_validation='ignore') ##works is_shell=True while is_shell: is_dir_get_or_create = session.run_cmd(r'if exist "C:Temp" (echo yes) else (echo no amp;amp; mkdir C:Temp)') ##failed is_shell=False
Пожалуйста, помогите мне
Заранее спасибо
Комментарии:
1. Убедитесь, что в вашей системе включено удаленное управление. А также, если его безопасность только тогда будет работать 5986 , в противном случае он будет на 5985.
2. да, я тоже попробовал 5985, та же ошибка
Ответ №1:
Я могу решить эту проблему, поэтому вам нужно настроить winrm quickconfigure на хостах назначения, прежде чем подключать его с помощью winrm, используя приведенный выше код python
Итак, что вам нужно сделать ниже на хостах назначения
C:/gt; winrm qc WinRM is not set up to receive requests on this machine. The following changes must be made: Set the WinRM service type to delayed auto start. Make these changes [y/n]? y WinRM has been updated to receive requests. WinRM service type changed successfully. WinRM is not set up to allow remote access to this machine for management. The following changes must be made: Create a WinRM listener on HTTP://* to accept WS-Man requests to any IP on this machine. Enable the WinRM firewall exception. Configure LocalAccountTokenFilterPolicy to grant administrative rights remotely to local users. Make these changes [y/n]? y WinRM has been updated for remote management. Created a WinRM listener on HTTP://* to accept WS-Man requests to any IP on this machine. WinRM firewall exception enabled. Configured LocalAccountTokenFilterPolicy to grant administrative rights remotely to local users.
И вы также можете позже отключить его
PSgt; Stop-Service winrm PSgt; Set-Service -Name winrm -StartupType Disabled
Это устранило вышеуказанную ошибку