0

我正在尝试使用 .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 关联的计划的正确方法是什么?(只是希望它禁用而不是删除)

4

1 回答 1

1

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

JobSchedules 表示运行手册和计划之间的关系。

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

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

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


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

结果:

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

图片1:

在此处输入图像描述

图片2:

在此处输入图像描述

这是否完全等同于在 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;

结果: 在此处输入图像描述

于 2017-06-26T07:57:01.500 回答