我有一个脚本模块,其.psm1文件运行的命令如果某个注册表值不存在则会失败。我想忽略这个失败,所以.psm1脚本运行命令:
CommandThatMayFail -ea SilentlyContinue
当我在PowerShell会话中导入模块时,这很好用。但是该模块中的一个功能启动了一些PS作业,这些PS作业也需要导入模块。当我在作业的InitializationScript中导入模块时,不会忽略CommandThatMayFail中的失败并且作业终止。我尝试在Try / Catch块中包装CommandThatMayFail,但这没有任何帮助。
我通过在作业的ScriptBlock中导入模块而不是InitializationScript来避免此问题。但我仍然对这里发生的事情感到好奇。任何人都可以放弃任何光明吗?
答案 0 :(得分:0)
尝试将陷阱放在与InitializationScript相同的范围内,但在代码中预先设置它:
Trap{
<commands you want it to run in case of error>;
continue
}
重要的部分是分号和continue
。我今天遇到了同样的问题,具有讽刺意味的是,这为我解决了这个问题。我认为这是终止/非终止错误和范围的问题,但这是我在自己的脚本中解决它的唯一方法。