首页 文章

如何从PSWorkflow Runbook中的InlineScript执行PowerShell脚本作为Azure自动化Runbook?

提问于
浏览
0

在PowerShell工作流活动中,我可以使用InlineScript调用本机PowerShell脚本:

workflow test
{
    InlineScript
    {
        .\script.ps1
    }
}

但是在Azure自动化中,点路径(至少在我的测试中)返回 c:\windows\system32 ,Azure自动化中的脚本运行簿在那里不存在(或者更确切地说,它无法执行,因为它找不到脚本) .

  • 是否可以像这样执行存储在AAuto中的本机PS Runbook?

  • 如果是这样,我如何指定文件的路径?

  • 这是Azure Automation的Workflow Runbooks和InlineScript活动的解析/编译过程中的错误/疏忽,是否阻止将依赖Runbook复制到worker?

我做了一点狩猎,发现当执行本机PS Runbook时:

  • 首先检查它们是否有任何其他Runbook参考 .

  • 作为部署到工作程序执行的一部分,在 C:\Temp\ 下创建一个随机命名的文件夹

  • 最终将引用的Runbook复制到此文件夹 .

  • 如果未找到要引用的Runbook,则不会将它们复制到临时目录 .

  • 根Runbook似乎未复制到该文件夹 .

  • 执行Workflow Runbook时,未创建动态命名的文件夹(在c:\ Temp下) .

  • 作为标准工作流编译的一部分,InlineScript活动将其内容复制到自动生成的xaml . 我不确定链接文件,但是基于看起来像运行时关注的行为 . 我的猜测是,每次执行工作流程时都会进行编译(因此延迟启动),并且在工作人员上进行编译,使用标准PS工作流程编译,就像本地工作一样 .

我无法(轻松地)将此脚本转换为工作流,并且可以在其他工作流活动中使用它 . 现在,我可以使这个“工作”的唯一方法是将脚本复制并粘贴到需要它的工作流程中的第一个InlineScript中,从维护的角度来看这显然是单调乏味的 .

据推测,作为一种解决方法,我可以使用混合工作者,但这带来了许多其他问题,例如确保在那里发布子Runbook并且必须单独维护它们,或者AAuto不会自动将自定义模块从自动化帐户推送到 Worker (虽然这是计划好的)等

1 回答

相关问题