PowerShell Start-Job无法运行。

3

我正在尝试在PowerShell 2.0中运行一个简单的作业进程,但似乎无法运行。

    $job = Start-Job { Return "一些字符串。" }

当我调用$job时,状态显示它正在运行。但问题是它从未完成。

在我的Windows 7机器上尝试了相同的事情,它立即完成了。

我在Windows XP上运行PowerShell 2.0。

有人知道是什么原因导致了这个问题吗?我该如何解决这个问题?

这是我的$PSVersionTable

    Name                           Value
    ----                           -----
    PSVersion                      2.0
    PSCompatibleVersions           {1.0, 2.0}
    BuildVersion                   6.0.6002.18111
    PSRemotingProtocolVersion      2.1
    WSManStackVersion              2.0
    CLRVersion                     4.0.30319.1
    SerializationVersion           1.1.0.1

一个更简单的复现方式是 Start-Job { 1 } - Jay Bazuzi
1个回答

6

我觉得你的XP PowerShell配置已经被“某种程度”修改了。 :-) 它应该在CLR版本2.0上运行,例如:

Name                           Value
----                           -----
CLRVersion                     2.0.50727.3615
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

尝试重置注册表hack(或Powershell.exe.config修改),使PowerShell 2.0在.NET 2.0上运行,看看问题是否仍然存在。


Keith,谢谢!你是完全正确的。显然,当你使用powershell.exe.config方法在.net 4下加载powershell时,后台作业不起作用。然而,看起来这只在Windows XP下是真实的,因为我的Windows 7安装——也在.net 4下运行——可以很好地运行后台作业。 - foureight84

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接