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

时间:2017-06-24 17:57:17

标签: azure azure-sdk-.net azure-automation azure-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关联的计划的正确方法是什么? (只是希望它被禁用而不删除)

1 个答案:

答案 0 :(得分:1)

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

JobSchedules是指Runbook和schedule之间的关系。

调用此方法后,Runbook不会与计划关联,但不会删除计划。

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

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


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

结果:

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

IMAGE1:

enter image description here

图像2:

enter image description here

  

这是否相当于在UI中将'Enabled'属性设置为No?

不,如果要禁用计划,则应使用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;

结果: enter image description here