PowerShell is not recognized as an internal or external command

Recently, while setting up a new Windows Server 2022, I encountered an issue where my Ansible playbook, which previously worked without problems, failed to execute.

Here’s the configuration I used for the Windows host in my Ansible inventory:

[jenkins-agent-windows:vars]
ansible_user=
ansible_ssh_pass=
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_winrm_server_cert_validation=ignore

However, when I ran the playbook, the following error occurred:

winrm send_input failed;
stdout:
stderr 'PowerShell' is not recognized as an internal or external command, operable program or batch file.

Cause of the Issue

This is usually the case when the SYSTEM’s PATH environment variable has been changed and is no longer able to find PowerShell.exe in the path.

Please verify the PATH environment contains the entry C:\Windows\System32\WindowsPowerShell\v1.0 in there.

Solution

Right-click This PC > Properties > Advanced system settings > Environment Variables.

After adding C:\Windows\System32\WindowsPowerShell\v1.0 to PATH, the error disappeared, and my Ansible playbook executed successfully.