使用 .net SDK 禁用 Azure 自动化 Runbook 计划

Disable Azure Automation Runbook Schedule using .net SDK

我正在尝试使用 .NET SDK 禁用 Runbook 计划 检索到我想禁用的 JobScheduled,并尝试将关联的 runbook 和计划设置为 null 和“”。

                    var schedulenm = new ScheduleAssociationProperty();
                    schedulenm.Name = "";
                    var runbooknm = new RunbookAssociationProperty();
                    runbooknm.Name = "";
                    jocsched.Properties.Schedule = schedulenm;
                    jobsched.Properties.Runbook = runbooknm;

还尝试直接查询主计划并将 IsEnabled 属性 设置为 false。 但是这也没有任何影响。

禁用与 Runbook 关联的计划的正确方法是什么? (只是希望它被禁用而不是被删除)

根据您的描述,如果您想禁用与 runbook 关联的计划。您可以使用 AutomationManagementClient.JobSchedules.Delete 方法。

JobSchedules 表示 runbook 和计划之间的关系。

调用该方法后,runbook不会关联日程,但不会删除日程。

更多细节,您可以参考下面的代码示例:

     var r2 =  automationManagementClient.JobSchedules.List("groupname", "accountname").JobSchedules.First();


        automationManagementClient.JobSchedules.Delete("groupname", "accountname", r2.Properties.Id);

结果:

您可以看到时间表仍然存在。

图片1:

图二:

Would that be the exact equivalent of setting the 'Enabled' property to No in the UI?

不,如果你想禁用时间表,你应该使用AutomationManagementClient.Schedules.Patch方法。

更多细节,您可以参考这段代码:

        AutomationManagementClient automationManagementClient = new AutomationManagementClient(aadTokenCredentials, resourceManagerUri);


        SchedulePatchParameters p1 = new SchedulePatchParameters("yourSchedulename");


        SchedulePatchProperties p2 = new SchedulePatchProperties();


        p2.IsEnabled = false;

        p1.Properties = p2;

        var result = automationManagementClient.Schedules.Patch("rgname", "am accountname", p1).StatusCode;

结果: