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

请求编写PowerShell脚本获取Azure Data Factory触发器列表及调度信息

PowerShell脚本获取Azure Data Factory触发器调度信息

前提准备

  • 安装Azure Data Factory模块:
    Install-Module -Name Az.DataFactory -Force -AllowClobber
    
  • 登录Azure账号:
    Connect-AzAccount
    

脚本实现

# 替换为你的资源组和ADF名称
$resourceGroupName = "YourResourceGroup"
$dataFactoryName = "YourDataFactory"

# 获取目标ADF实例
$dataFactory = Get-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Name $dataFactoryName

# 获取ADF中所有触发器
$triggers = Get-AzDataFactoryV2Trigger -DataFactory $dataFactory

# 存储结果的集合
$triggerScheduleInfo = @()

foreach ($trigger in $triggers) {
    # 只处理调度型触发器(ScheduleTrigger)
    if ($trigger.Type -eq "ScheduleTrigger") {
        $schedule = $trigger.Properties.Schedule
        $scheduleTime = ""

        # 根据触发器频率解析调度时间
        switch ($schedule.Frequency) {
            "Daily" {
                # 每日调度取具体时间点,多个时间用逗号分隔
                $scheduleTime = $schedule.DailyTime -join ","
            }
            "Hourly" {
                # 小时级调度显示间隔和分钟偏移
                $scheduleTime = "每$($schedule.Interval)小时,第$($schedule.HourlySchedule.Minutes)分钟执行"
            }
            "Weekly" {
                # 每周调度取周几和时间点
                $days = $schedule.WeeklySchedule.Days -join ","
                $times = $schedule.WeeklySchedule.Times -join ","
                $scheduleTime = "周$days $times"
            }
            "Monthly" {
                # 每月调度分固定日期和周次两种情况
                if ($schedule.MonthlySchedule.MonthDays) {
                    $days = $schedule.MonthlySchedule.MonthDays -join ","
                    $times = $schedule.MonthlySchedule.Times -join ","
                    $scheduleTime = "每月$days日 $times"
                } else {
                    $weekOccur = $schedule.MonthlySchedule.WeeklyOccurrence
                    $times = $schedule.MonthlySchedule.Times -join ","
                    $scheduleTime = "每月第$($weekOccur.Occurrence)个$($weekOccur.Day) $times"
                }
            }
            default {
                $scheduleTime = "无法识别的调度频率"
            }
        }

        # 将信息添加到结果集合
        $triggerScheduleInfo += [PSCustomObject]@{
            TriggerName  = $trigger.Name
            Frequency    = $schedule.Frequency
            ScheduleTime = $scheduleTime
        }
    }
}

# 输出指定格式的结果(控制台)
$triggerScheduleInfo | ForEach-Object { "$($_.TriggerName),$($_.Frequency),$($_.ScheduleTime)" }

# 可选:导出到CSV文件
# $triggerScheduleInfo | Export-Csv -Path "ADF_Trigger_Schedules.csv" -NoTypeInformation -Encoding UTF8

说明

  • 脚本仅处理ScheduleTrigger类型的触发器,因为翻滚窗口、事件触发等类型没有固定的调度时间
  • 针对不同频率的触发器做了适配,尽量输出直观的调度时间信息
  • 可以注释掉控制台输出,启用CSV导出以便后续分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:57:37