我正在尝试使用.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关联的计划的正确方法是什么? (只是希望它被禁用而不删除)
答案 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:
图像2:
这是否相当于在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;