Powershell中的Start-Job脚本块挂起?

时间:2012-01-07 05:19:50

标签: powershell powershell-v2.0

我有以下脚本。创建的后台作业永远不会完成。 (如果我只是在-ScriptBlock { ... }中运行脚本,它会在几秒钟内完成。

修改
我的机器是XP / sp3。这可能是乔恩发现的原因。

Start-Job -ScriptBlock {
    if ( (Get-PSSnapin -Name Sql* -ErrorAction SilentlyContinue) -eq $null )
    {
        Add-PSSnapin Sql*
    }
    Invoke-Sqlcmd -Query "select 1 a" -ServerInstance serverX -ErrorAction stop
}

Receive-Job *不返回任何内容,Get-Job始终返回以下行。

> Get-Job

Id              Name            State      HasMoreData     Location             Command                  
--              ----            -----      -----------     --------             -------                  
29              Job29           Running    True            localhost            ...                      

2 个答案:

答案 0 :(得分:4)

您的代码似乎在我的测试环境中工作(Windows 7)。您可能在Windows XP / 2003上遇到this (Background jobs keep running infinitely in Win XP SP3)

答案 1 :(得分:4)