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

使用.net SDK禁用Azure自动化Runbook计划,azure,azure-sdk-.net,azure-automation,azure-sdk,Azure,Azure Sdk .net,Azure Automation,Azure Sdk,我正在尝试使用.NET SDK禁用Runbook计划 检索到我要禁用的JobScheduled,并尝试将关联的runbook和schedule设置为null和“” var schedulenm=new ScheduleAssociationProperty(); schedulenm.Name=“”; var runbooknm=新的RunbookAssociationProperty(); runbooknm.Name=“”; jocsched.Properties.Schedule=sch

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

var schedulenm=new ScheduleAssociationProperty();
schedulenm.Name=“”;
var runbooknm=新的RunbookAssociationProperty();
runbooknm.Name=“”;
jocsched.Properties.Schedule=schedulenm;

jobsched.Properties.Runbook=runbooknm。您可以使用AutomationManagementClient.JobSchedules.Delete方法

作业计划是指运行手册和计划之间的关系

调用此方法后,runbook将不会与计划关联,但不会删除该计划

更多详细信息,请参考以下代码示例:

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


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

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

图1:

图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;
结果:

谢谢,这是否与在UI中将“Enabled”属性设置为“No”完全相同?我的目的是暂时禁用计划运行,并在一段时间后以简单的方式重新启用。不,如果要禁用计划,应使用AutomationManagementClient.Schedules.Patch方法。你可以看到我的更新答案。非常感谢!这回答了我的问题。