3

我的一项工作需要powershell 3.0ConvertTo-Json中可用的命令行开关,所以我在我们的 Windows Server 2008 R2 (SP1) 机器上安装了 WMF 3.0 。重新启动后,我使用作业的所有 powershell 都会导致错误:

[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

powershell.exe从 cmd 提示符运行就可以了。

发生了什么?我该如何解决?

我正在使用 Powershell 插件启动脚本,但找不到任何配置区域。

4

2 回答 2

5

经过一天的麻烦,我们找到了答案。我们仍然不确定它发生的确切原因,但 powershell 目录从 Hudson 的路径中消失了。然后,尽管安装了 PS3 并重新启动了机器,但 Hudson 出于某种原因没有选择新的 PATH 变量。

手动关闭并重新启动 Hudson 终于让它选择了正确的 PATH 并解决了这个问题。

于 2013-05-20T21:29:44.287 回答
2

乔治:

在安装 PowerShell 3.0 之后,我的任务计划程序遇到了完全相同的问题。仅将“powershell”或“powershell.exe”作为计划任务运行失败。重新启动机器修复它(我不能只是重新启动 Windows Server 2008 R2 上的任务计划程序)。

我的猜测是,在安装 PS 3.0 时重新启动后,路径已设置,到那时您的所有自动服务(如任务计划程序或 Hudson)都已启动。

因此,让这成为对朋友和敌人的警告。安装 PowerShell 3.0 时,请重新启动两次!

于 2013-08-09T18:51:07.470 回答