You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure自动化账户:获取当前运行Runbook名称失败求助

获取Azure自动化Runbook当前运行名称的解决方法

问题原因

在Azure自动化Runbook的执行环境中,$MyInvocation.MyCommand的上下文与本地PowerShell不同,它指向的是自动化服务内部的执行宿主脚本,而非当前运行的Runbook,因此直接调用$MyInvocation.MyCommand.Name会返回空白。

可行解决方案

方法一:通过作业ID查询Runbook名称

这是最可靠的方式,通过Azure自动化模块获取当前作业详情,从中提取Runbook名称:

# 获取当前作业的GUID
$jobId = $PSPrivateMetadata.JobId.Guid

# 替换为你的自动化账户名和资源组名
$automationAccountName = "你的自动化账户名称"
$resourceGroupName = "你的资源组名称"

# 获取作业信息并提取Runbook名称
$jobDetails = Get-AzAutomationJob -AutomationAccountName $automationAccountName -ResourceGroupName $resourceGroupName -Id $jobId
$currentRunbookName = $jobDetails.RunbookName

Write-Output "当前运行的Runbook名称:$currentRunbookName"

注意:需要确保Runbook的执行账户拥有对应自动化账户的读取权限,且已在自动化账户中导入Az.Automation模块。

方法二:使用自动化变量预定义名称

如果Runbook名称固定不变,可以预先在自动化账户中创建一个字符串变量(例如命名为CurrentRunbookName),将其值设为Runbook的名称,然后在Runbook中读取:

$currentRunbookName = Get-AutomationVariable -Name "CurrentRunbookName"
Write-Output "当前运行的Runbook名称:$currentRunbookName"

这种方式更轻量,但需要手动维护变量值,不适用于Runbook名称可能变更的场景。

内容的提问来源于stack exchange,提问作者Kez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:32:06