如何在Azure自动化中从父(PowerShell)Runbook内联调用子(PowerShell)Runbook?

dgtucam1  于 2022-11-10  发布在  Shell
关注(0)|答案(2)|浏览(207)

为了创建一些可重用的PowerShell代码,我尝试对子Runbook进行内联调用。我是PowerShell和Azure Automation的新手。
到目前为止,我从父工作簿对子Runbook进行内联调用的所有尝试都失败了,并出现以下错误:

术语‘./<name_of_Child_runbook>.ps1’未被识别为cmdlet、函数、脚本文件或可执行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

这两本Runbook都是PowerShell(7.1版)。这两个Runbook驻留在同一个Automation帐户下。
为了清楚起见,我试着把它简化为最简单的形式。以下是名为*rnbk_TEST_CHILD子Runbook**的内容。

Write-Output "Hello, this is the child runbook."

父Runbook也有一行代码,如下所示:

./rnbk_test_child.ps1

在创建和测试父Runbook之前,我首先发布子Runbook。我主要是根据本文中的信息进行工作的。

68bkxrlz

68bkxrlz1#

可以使用Az.Automation模块中的Az cmdlet Start-AzAutomationRunbook调用子Runbook。

$automationAccountName = '<InsertHere>'
$runbookName = '<InsertHere>'
$automationAccountResourceGroup = '<InsertHere>'

$startAutomationRunBookSplat = @{
        AutomationAccountName = $automationAccountName 
        Name                  = $runbookName
        ResourceGroupName     = $automationAccountResourceGroup 
        Parameters            = $ParametersHashtable
    }

    Start-AzAutomationRunbook @startAutomationRunBookSplat -verbose

有关用法的文档:https://learn.microsoft.com/en-us/powershell/module/az.automation/start-azautomationrunbook?view=azps-7.4.0

vohkndzv

vohkndzv2#

我不确定您是否已经弄明白了这一点,但据我所知,您在父Runbook中需要做的就是调用子Runbook,就像它是内联PowerShell函数一样
E.g

runbktestchild -parameter1 "value"

如果Runbook名称中有下划线,我认为它不会起作用:s

相关问题