Start-Job InitializationScript中未忽略的错误

时间:2010-10-29 16:43:16

标签: powershell

我有一个脚本模块,其.psm1文件运行的命令如果某个注册表值不存在则会失败。我想忽略这个失败,所以.psm1脚本运行命令:

CommandThatMayFail -ea SilentlyContinue

当我在PowerShell会话中导入模块时,这很好用。但是该模块中的一个功能启动了一些PS作业,这些PS作业也需要导入模块。当我在作业的InitializationScript中导入模块时,不会忽略CommandThatMayFail中的失败并且作业终止。我尝试在Try / Catch块中包装CommandThatMayFail,但这没有任何帮助。

我通过在作业的ScriptBlock中导入模块而不是InitializationScript来避免此问题。但我仍然对这里发生的事情感到好奇。任何人都可以放弃任何光明吗?

1 个答案:

答案 0 :(得分:0)

尝试将陷阱放在与InitializationScript相同的范围内,但在代码中预先设置它:

Trap{
    <commands you want it to run in case of error>;
    continue
    }

重要的部分是分号和continue。我今天遇到了同样的问题,具有讽刺意味的是,这为我解决了这个问题。我认为这是终止/非终止错误和范围的问题,但这是我在自己的脚本中解决它的唯一方法。