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

如何获取Azure Automation中运行的PowerShell Runbook名称?

在Azure Automation Runbook中获取当前Runbook名称的方法

在Azure Automation的PowerShell Runbook环境里,$MyInvocation.BoundParameters['Name']无法获取Runbook名称,因为该参数不会被自动化环境自动传入。以下是两种可靠的获取方式:

方法1:读取环境变量(推荐)

Azure Automation会自动将当前Runbook的名称注入到环境变量中,直接读取$env:AUTOMATION_RUNBOOK_NAME即可获取:

$runbookName = $env:AUTOMATION_RUNBOOK_NAME

这个变量无需额外配置,在所有PowerShell Runbook(包括图形化Runbook的脚本模块)中都能直接使用,是最简单高效的方式。

方法2:通过Az模块查询作业信息(适合复杂场景)

如果需要获取更多Runbook关联信息(比如作业状态、创建时间),可以借助Az模块查询当前作业对应的Runbook名称。首先确保自动化账户已安装Az.Automation模块,且Runbook拥有足够权限(如使用托管身份),示例代码如下:

# 获取当前作业ID
$jobId = $env:AUTOMATION_JOB_ID

# 导入模块(若未自动加载)
Import-Module Az.Automation

# 查询作业详情并提取Runbook名称
$jobDetails = Get-AzAutomationJob -ResourceGroupName "你的资源组名称" -AutomationAccountName "你的自动化账户名称" -Id $jobId
$runbookName = $jobDetails.RunbookName

集成Discord通知示例

将获取到的Runbook名称融入通知逻辑,示例代码如下:

$runbookName = $env:AUTOMATION_RUNBOOK_NAME
$discordWebhookUrl = "你的Discord Webhook地址"

$notificationContent = @{
    content = "Runbook **$runbookName** 执行完成,状态:成功"
} | ConvertTo-Json

Invoke-RestMethod -Uri $discordWebhookUrl -Method Post -Body $notificationContent -ContentType "application/json"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:55:54