# Unable to connect to a Windows host

**URL:** <https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462>\
**Category:** Get Help\
**Tags:** windows\
**Created:** [May 5, 2025, 9:39pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462 "2025-05-05T21:39:48Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 5, 2025, 9:39pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/1 "2025-05-05T21:39:48Z")

</div>

I’m new to Ansible but have set it up on Red Hat 9 and can ping and ssh from my Red Hat server to the Windows 2022 server fine but I can’t ping/connect to the Windows server with Ansible. Could someone help with this issue?

```auto
- my code!

```

- Set at least one tag (the experts follow the tags, so the right people will find you if you tag)

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 12:02pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/2 "2025-05-06T12:02:26Z")

</div>

To be able to help, we’ll need some details about your environment, connection settings, and an error message at least.

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 1:40pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/3 "2025-05-06T13:40:50Z")

</div>

Inventory below named test  
[win]  
192.168.20.132  
[win:vars]  
ansible\_user=root  
ansible\_password=mypassword  
ansible\_connection=winrm  
ansible\_winrm\_transport=basic  
ansible\_winrm\_server\_cert\_validation=ignore  
ansible\_port=5986

Error I receive when trying to run the following command.

ansible -all -m ping -i test

[WARNING]: Unhandled error in Python interpreter discovery for host 192.168.20.132: winrm or requests is not installed:  
No module named ‘winrm’  
192.168.20.132 | FAILED! =\> {  
“msg”: “winrm or requests is not installed: No module named ‘winrm’”

Any help to resolve this would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 1:51pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/4 "2025-05-06T13:51:51Z")

</div>

First, for trying to `ping` windows hosts, you might want to check out the [win\_ping](https://docs.ansible.com/ansible/latest/collections/ansible/windows/win_ping_module.html#ansible-collections-ansible-windows-win-ping-module) module instead.

But, the error message here tells you exactly what you’re missing, too

> [@Chris\_Pendergraft](#):
>
> “msg”: “winrm or requests is not installed: No module named ‘winrm’”

to resolve this, you’ll need to do something like

```auto
pip install pywinrm 
pip install requests

```

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 3:32pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/5 "2025-05-06T15:32:00Z")

</div>

> [@Lyle\_McKarns](#):
>
> `pip install requests`

HI Lyle, thanks for the help after running the commands in your response now I receive this error.

# ansible all -m win\_ping -i test

192.168.20.132 | FAILED! =\> {  
“msg”: “The module win\_ping was redirected to ansible.windows.win\_ping, which could not be loaded.”

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 4:32pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/6 "2025-05-06T16:32:09Z")

</div>

You can check if `ansible.windows` is installed with

```auto
ansible-galaxy collection list | grep windows

```

and if its not, you can install it with

```auto
ansible-galaxy collection install ansible.windows

```

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 6:00pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/7 "2025-05-06T18:00:55Z")

</div>

Had to install it.  
ansible-galaxy collection list | grep windows  
ansible.windows 3.0.0

Now error seems to be the somewhat the same  
192.168.20.132 | FAILED! =\> {  
“msg”: “winrm or requests is not installed: No module named ‘winrm’”

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 6:04pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/8 "2025-05-06T18:04:12Z")

</div>

Per the second portion of my earlier post, you’ll need to install those bits.

> [@Lyle\_McKarns](#):
>
> to resolve this, you’ll need to do something like
> 
> ```auto
> pip install pywinrm 
> pip install requests
> 
> ```

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 6:34pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/9 "2025-05-06T18:34:02Z")

</div>

I did previously

# pip install pywinrm

Requirement already satisfied: pywinrm in /usr/local/lib/python3.9/site-packages (0.5.0)  
Requirement already satisfied: xmltodict in /usr/local/lib/python3.9/site-packages (from pywinrm) (0.14.2)  
Requirement already satisfied: requests\>=2.9.1 in /usr/lib/python3.9/site-packages (from pywinrm) (2.25.1)  
Requirement already satisfied: requests-ntlm\>=1.1.0 in /usr/local/lib/python3.9/site-packages (from pywinrm) (1.3.0)  
Requirement already satisfied: idna\<3,\>=2.5 in /usr/lib/python3.9/site-packages (from requests\>=2.9.1-\>pywinrm) (2.10)  
Requirement already satisfied: urllib3\<1.27,\>=1.21.1 in /usr/lib/python3.9/site-packages (from requests\>=2.9.1-\>pywinrm) (1.26.5)  
Requirement already satisfied: chardet\<5,\>=3.0.2 in /usr/lib/python3.9/site-packages (from requests\>=2.9.1-\>pywinrm) (4.0.0)  
Requirement already satisfied: cryptography\>=1.3 in /usr/local/lib64/python3.9/site-packages (from requests-ntlm\>=1.1.0-\>pywinrm) (44.0.3)  
Requirement already satisfied: pyspnego\>=0.4.0 in /usr/local/lib/python3.9/site-packages (from requests-ntlm\>=1.1.0-\>pywinrm) (0.11.2)  
Requirement already satisfied: cffi\>=1.12 in /usr/local/lib64/python3.9/site-packages (from cryptography\>=1.3-\>requests-ntlm\>=1.1.0-\>pywinrm) (1.17.1)  
Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi\>=1.12-\>cryptography\>=1.3-\>requests-ntlm\>=1.1.0-\>pywinrm) (2.22)

# pip install requests

Requirement already satisfied: requests in /usr/lib/python3.9/site-packages (2.25.1)  
Requirement already satisfied: idna\<3,\>=2.5 in /usr/lib/python3.9/site-packages (from requests) (2.10)  
Requirement already satisfied: chardet\<5,\>=3.0.2 in /usr/lib/python3.9/site-packages (from requests) (4.0.0)  
Requirement already satisfied: urllib3\<1.27,\>=1.21.1 in /usr/lib/python3.9/site-packages (from requests) (1.26.5)

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 6:46pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/10 "2025-05-06T18:46:34Z")

</div>

Is that the same instance of python that ansible is using?

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 6:49pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/11 "2025-05-06T18:49:34Z")

</div>

I’m not sure. How to check and correct?

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 6:59pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/12 "2025-05-06T18:59:27Z")

</div>

ansible --version  
ansible [core 2.16.14]  
config file = /etc/ansible/ansible.cfg  
configured module search path = [‘/root/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’]  
ansible python module location = /usr/lib/python3.11/site-packages/ansible  
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections  
executable location = /usr/bin/ansible  
python version = 3.11.9 (main, Apr 2 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3.11)  
jinja version = 3.1.5  
libyaml = True

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 7:18pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/13 "2025-05-06T19:18:03Z")

</div>

It looks like you installed the modules into a python3.9 environment

> [@Chris\_Pendergraft](#):
>
> Requirement already satisfied: pywinrm in /usr/local/lib/python3.9/site-packages (0.5.0)

> [@Chris\_Pendergraft](#):
>
> Requirement already satisfied: requests in /usr/lib/python3.9/site-packages (2.25.1)

But ansible is running for a 3.11.9 environment (at a different path).

> [@Chris\_Pendergraft](#):
>
> python version = 3.11.9 (main, Apr 2 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3.11)

So, while they are installed, they’re not usable by ansible. You could do something like

```auto
/usr/bin/python3.11 -m pip install pywinrm requests

```

to ensure that the modules required are installed in the correct environment

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 7:35pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/14 "2025-05-06T19:35:54Z")

</div>

Didn’t work…

# /usr/bin/python3.11 -m pip install pywinrm requests

/usr/bin/python3.11: No module named pip

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 7:47pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/15 "2025-05-06T19:47:49Z")

</div>

Maybe this is an effort in futility. 😀

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 7:57pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/16 "2025-05-06T19:57:17Z")

</div>

# /usr/bin/python3.11 -m pip install pywinrm requests

Collecting pywinrm  
Using cached pywinrm-0.5.0-py3-none-any.whl (48 kB)  
Requirement already satisfied: requests in /usr/lib/python3.11/site-packages (2.28.1)  
Collecting requests-ntlm\>=1.1.0  
Using cached requests\_ntlm-1.3.0-py3-none-any.whl (6.6 kB)  
Collecting xmltodict  
Using cached xmltodict-0.14.2-py2.py3-none-any.whl (10.0 kB)  
Requirement already satisfied: charset\_normalizer\<3,\>=2 in /usr/lib/python3.11/site-packages (from requests) (2.1.0)  
Requirement already satisfied: idna\<4,\>=2.5 in /usr/lib/python3.11/site-packages (from requests) (3.4)  
Requirement already satisfied: urllib3\<1.27,\>=1.21.1 in /usr/lib/python3.11/site-packages (from requests) (1.26.12)  
Requirement already satisfied: cryptography\>=1.3 in /usr/lib64/python3.11/site-packages (from requests-ntlm\>=1.1.0-\>pywinrm) (42.0.5)  
Collecting pyspnego\>=0.4.0  
Using cached pyspnego-0.11.2-py3-none-any.whl (130 kB)  
Requirement already satisfied: cffi\>=1.12 in /usr/lib64/python3.11/site-packages (from cryptography\>=1.3-\>requests-ntlm\>=1.1.0-\>pywinrm) (1.15.1)  
Requirement already satisfied: pycparser in /usr/lib/python3.11/site-packages (from cffi\>=1.12-\>cryptography\>=1.3-\>requests-ntlm\>=1.1.0-\>pywinrm) (2.20)  
Requirement already satisfied: ply==3.11 in /usr/lib/python3.11/site-packages (from pycparser-\>cffi\>=1.12-\>cryptography\>=1.3-\>requests-ntlm\>=1.1.0-\>pywinrm) (3.11)  
Installing collected packages: xmltodict, pyspnego, requests-ntlm, pywinrm  
Successfully installed pyspnego-0.11.2 pywinrm-0.5.0 requests-ntlm-1.3.0 xmltodict-0.14.2

---

<div class="post-metadata">

**Author:** ![Chris\_Pendergraft](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chris_pendergraft/32/8359_2.png) [@Chris\_Pendergraft](https://forum.ansible.com/u/Chris_Pendergraft)\
**Post date:** [May 6, 2025, 7:58pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/17 "2025-05-06T19:58:55Z")

</div>

Then ran

# ansible all -m win\_ping -i test

192.168.20.132 | SUCCESS =\> {  
“changed”: false,  
“ping”: “pong”

Thanks for the help. Greatly appreciated 👋 😀

---

<div class="post-metadata">

**Author:** ![Lyle\_McKarns](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/lyle_mckarns/32/8142_2.png) [@Lyle\_McKarns](https://forum.ansible.com/u/Lyle_McKarns)\
**Post date:** [May 6, 2025, 7:59pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/18 "2025-05-06T19:59:53Z")

</div>

For windows hosts you still need to use `win_ping`

---

<div class="post-metadata">

**Author:** ![jskorzyn](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/jskorzyn/32/3860_2.png) [@jskorzyn](https://forum.ansible.com/u/jskorzyn)\
**Post date:** [May 8, 2025, 2:01pm UTC](https://forum.ansible.com/t/unable-to-connect-to-a-windows-host/42462/19 "2025-05-08T14:01:42Z")

</div>

Hi,  
If you chose to try OpenSSH instead of winrm it might be much easier.  
Seems like OpenSSH is already running on your Windows machine as you claim in initial post  
All you need to set up is ansible \_shell\_type variable set to cmd or powershell (depends on your default shell ).  
All is nicely documented here: [Windows SSH — Ansible Community Documentation](https://docs.ansible.com/ansible/latest/os_guide/windows_ssh.html)
