Skip to main content
  1. Posts/

PowerShell is not recognized as an internal or external command

·143 words·1 min· ·
Xianpeng Shen
Author
Xianpeng Shen
DevOps & Build Engineer | Python Enthusiast | Open Source Maintainer
Table of Contents

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.

Related

Code Signing

·701 words·2 mins
This article introduces the concept and importance of code signing, along with a comparison of two common code signing tools, emphasizing its role in software supply chain security.