'Jenkins not finding powershell

I'm getting this error when I tried to run a Windows Powershell command in my biuld. I don't know how to add Powershell.exe to this? This was a plugin and I have no idea where it's located or how to use it.

[DeploymentTest] $ powershell.exe -NonInteractive -ExecutionPolicy ByPass "& '/tmp/jenkins8870821876113230026.ps1'"
FATAL: command execution failed
java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)

. . .

Caused: java.io.IOException: Cannot run program "powershell.exe" (in directory "/var/lib/jenkins/workspace/DeploymentTest"): error=2, No such file or directory


Solution 1:[1]

You are running it on a Linux box.Please switch over to a Windows box as you need Windows to run powershell.

Solution 2:[2]

If you're running dotnet/powershell on Linux, use a shell step and call the linux powershell executable /usr/bin/pwsh within it. Here's an example working for me on a dotnet5 debian container:

stage('PreBuild') {
  steps {
    sh '''
      wget -v  https://aka.ms/install-artifacts-credprovider.ps1
      /usr/bin/pwsh -File ./install-artifacts-credprovider.ps1 -AddNetfx

      dotnet --version

      # reset the nuget credentials
      dotnet nuget update source "infrastructure"
    '''
  }
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ravindranath Barathy
Solution 2 andrew lorien