使用 .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;
结果:
我正在尝试使用 .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;
结果: