Chr*_*ris 4 powershell workflow
我试图将PowerShell工作流引入一些现有脚本中,以利用并行运行功能。
当前在工作流程中,我必须使用:
Inline
{
Import-Module My.Modules
Execute-MyModulesCustomFunctionFromImportedModules -SomeVariable $Using:SomeVariableValue
}
Run Code Online (Sandbox Code Playgroud)
否则,我会收到错误消息,指出找不到自定义函数。必须有更好的方法来做到这一点?
http://www.powershellmagazine.com/2012/11/14/powershell-workflows/上的文章证实了必须导入模块然后使用它们才是它的工作方式-MS通过为其所有模块创建WF活动来解决此问题常见的PowerShell命令:
通用工作流程设计策略
重要的是要理解工作流的全部内容都被翻译成WF自己的语言,这种语言只能理解活动。除了一些命令以外,Microsoft提供了与大多数核心PowerShell cmdlet对应的WF活动。这意味着PowerShell的大多数内置命令(在导入任何模块之前都可用)可以正常工作。
但是,附加模块不是这种情况。此外,由于每个工作流程活动都在一个独立的空间中执行,因此您甚至无法在工作流程中单独使用Import-Module。您基本上已经导入了一个模块,但是当您尝试运行该模块的任何命令时,它就会消失。
解决方案是将工作流视为高级任务协调机制。您可能在工作流中有许多InlineScript {}块,因为这些块的内容在单个PowerShell会话中作为单个单元执行。在InlineScript {}中,您可以导入模块,然后运行其命令。包含的每个InlineScript {}块都是独立运行的,因此可以将其视为各种独立的脚本文件:每个块都应执行成功运行所需的任何设置任务。
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |