如何远程运行使用自定义模块的 Powershell 工作流?

如何远程运行使用自定义模块的 Powershell 工作流?

我有一个为各种任务编写的自定义 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
}

可悲的是,我无法从我所在的地方对其进行测试,但我最近的经验告诉我这是我需要做的。

相关内容