我有一个为各种任务编写的自定义 Powershell 模块。现在我想设计一个工作流,其活动将使用模块中的命令。这是我的测试工作流:
workflow New-TestWorkflow{
InlineScript {
Import-Module custom.ps1
New-CommandFromTheModule
}
}
然后我使用以下命令运行工作流程:
New-TestWorkflow -PSComputerName remoteComputer
当我这样做时,导入失败,因为它找不到模块。我猜想这是因为工作流正在远程计算机上执行,而我的模块不存在。
我可以想象自己在许多机器上运行这个模块,所以我真的不想在所有机器上安装和维护这个模块。有没有办法将我的模块放在一个中心位置并在工作流中使用它?
答案1
看着本文,我需要在活动结束时使用 -PSRequiredModules,在本例中是整个 InlineScript。所以...
workflow New-TestWorkflow{
InlineScript {
New-CommandFromTheModule
} -PSRequiredModules custom
}
可悲的是,我无法从我所在的地方对其进行测试,但我最近的经验告诉我这是我需要做的。