Hudson cannot find powershell after update to powershell 3

为君一笑 提交于 2019-12-10 17:55:26

问题


One of my jobs had need for the ConvertTo-Json commandlet available in powershell 3.0 So I installed WMF 3.0 on our Windows Server 2008 R2 (SP1) box. After a restart all my powershell using jobs result in the error:

[workspace] $ powershell.exe "& 'C:\Users\HUDSON~1\AppData\Local\Temp\hudson1263303013566726397.ps1'"
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "powershell.exe" (in directory "C:\hudson\jobs\MyProject\workspace"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    at hudson.Proc$LocalProc.<init>(Proc.java:192)
    at hudson.Proc$LocalProc.<init>(Proc.java:164)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:639)
    at hudson.Launcher$ProcStarter.start(Launcher.java:274)
    at hudson.Launcher$ProcStarter.join(Launcher.java:281)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:84)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:60)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:630)
    at hudson.model.Build$RunnerImpl.build(Build.java:175)
    at hudson.model.Build$RunnerImpl.doRun(Build.java:137)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:429)
    at hudson.model.Run.run(Run.java:1366)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:188)
    at java.lang.ProcessImpl.start(ProcessImpl.java:132)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
    ... 16 more

Running powershell.exe from the cmd prompt works just fine.

What happened? How do I fix this?

I am using the Powershell Plugin to launch the scripts and I cannot find any configuration area for it.


回答1:


After a day's worth of hassle we found the answer. We're still not sure exactly why it happened but the powershell directory disappeared from Hudson's path. Then, although PS3 was installed and the machine had been restarted, Hudson for some reason had not picked up the new PATH variable.

Manually shutting down and restarting Hudson finally got it to pick up the correct PATH and fixed the issue.




回答2:


George:

I had the exact same problem with the Task Scheduler, right after installing PowerShell 3.0. Running simply "powershell" or "powershell.exe" as a Scheduled Task failed. Rebooting the machine fixed it (I couldn't just restart the Task Scheduler on Windows Server 2008 R2).

My guess is what's happening is that after the reboot when installing PS 3.0, the path is set, and by that time all of your automatic services (like Task Scheduler or Hudson) have started.

So let this be a warning to friend and foe alike. When you install PowerShell 3.0, reboot twice!



来源:https://stackoverflow.com/questions/16638074/hudson-cannot-find-powershell-after-update-to-powershell-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!