Disable-AzureBatchComputeNodeScheduling

Disables task scheduling on the specified compute node.

Warning

The AzureRM PowerShell module has been officially deprecated as of February 29, 2024. Users are advised to migrate from AzureRM to the Az PowerShell module to ensure continued support and updates.

Although the AzureRM module may still function, it's no longer maintained or supported, placing any continued use at the user's discretion and risk. Please refer to our migration resources for guidance on transitioning to the Az module.

Syntax

Disable-AzureBatchComputeNodeScheduling
       [-PoolId] <String>
       [-Id] <String>
       [-DisableSchedulingOption <DisableComputeNodeSchedulingOption>]
       -BatchContext <BatchAccountContext>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]
Disable-AzureBatchComputeNodeScheduling
       [[-ComputeNode] <PSComputeNode>]
       [-DisableSchedulingOption <DisableComputeNodeSchedulingOption>]
       -BatchContext <BatchAccountContext>
       [-DefaultProfile <IAzureContextContainer>]
       [<CommonParameters>]

Description

The Disable-AzureBatchComputeNodeScheduling cmdlet disables task scheduling on the specified compute node. A compute node is an Azure virtual machine dedicated to a specific application workload. When you disable task scheduling on a compute node you will also have the option of determining what to do about jobs currently in the node's task queue. Disable-AzureBatchComputeNodeScheduling lets you do the following:

  • Terminate the tasks and put them back in the job queue. This enables those tasks to be rescheduled on another compute node.
  • Terminate the tasks and remove them from the job queue. Tasks stopped in this manner will not be rescheduled.
  • Wait for all the tasks currently being executed to complete and then disable task scheduling on the compute node.
  • Wait for all the running tasks to complete and all the data retention periods to expire, and then disable task scheduling on the compute node.

Examples

Example 1: Disable task scheduling on a compute node

PS C:\>$Context = Get-AzureRmBatchAccountKeys -AccountName "contosobatchaccount"
PS C:\> Disable-AzureBatchComputeNodeScheduling -PoolId "myPool" -Id "tvm-1783593343_34-20151117t222514z" -BatchContext $Context

These commands disable task schedule on the compute node tvm-1783593343_34-20151117t222514z. To do this, the first command in the example creates an object reference to the account keys for the batch account contosobatchaccount. This object reference is stored in a variable named $context. The second command then uses this object reference and the Disable-AzureBatchComputeNodeScheduling cmdlet to connect to the pool myPool and disable task scheduling on node tvm-1783593343_34-20151117t222514z. Because the DisableComputeNodeSchedulingOptions parameter was not included any tasks currently running on the compute node will be requeued.

Example 2: Disable task scheduling on all compute nodes in a pool

PS C:\>$Context = Get-AzureRmBatchAccountKeys -AccountName "contosobatchaccount"
PS C:\> Get-AzureBatchComputeNode -PoolId "Pool06"  -BatchContext $Context | Disable-AzureBatchComputeNodeScheduling -BatchContext $Context

These commands disable task scheduling on all the computer nodes in the batch pool Pool06. To perform this task, the first command in the example creates an object reference to the account keys for the batch account contosobatchaccount. This object reference is stored in a variable named $context. The second command in the example then uses this object reference and Get-AzureBatchComputeNode to return a collection of all the compute nodes found in Pool06. That collection is then piped to then Disable-AzureBatchComputeNodeScheduling cmdlet to disable task scheduling on each compute node in the collection. Because the DisableComputeNodeSchedulingOptions parameter was not included any tasks currently running on the compute nodes will be requeued.

Parameters

-BatchContext

Specifies the BatchAccountContext instance that this cmdlet uses to interact with the Batch service. If you use the Get-AzureRmBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzureRmBatchAccountKeys cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property.

Type:BatchAccountContext
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputeNode

Specifies an object reference to the compute node where task scheduling is disabled. This object reference is created by using the Get-AzureBatchComputeNode cmdlet and storing the returned compute node object in a variable.

Type:PSComputeNode
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DefaultProfile

The credentials, account, tenant, and subscription used for communication with azure.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableSchedulingOption

Specifies how this cmdlet deals with any tasks currently running on the computer node where scheduling is being disabled. The acceptable values for this parameter are:

  • Requeue. Tasks are stopped immediately and returned to the job queue. This enables the tasks to be rescheduled on another compute node. This is the default value.
  • Terminate. Tasks are stopped immediately and removed from the job queue. These tasks will not be rescheduled.
  • TaskCompletion. Currently running tasks will be able to complete before task scheduling is disabled on the compute node. No new tasks will be scheduled on this node.
  • RetainedData. Currently running tasks will be able to complete and data retention periods will be able to expire before task scheduling is disabled on the compute node. No new tasks will be scheduled on this node.
Type:Nullable<T>[DisableComputeNodeSchedulingOption]
Accepted values:Requeue, Terminate, TaskCompletion
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Specifies the ID of the compute node where task scheduling is disabled.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PoolId

Specifies the ID of the batch pool that contains the compute node where task scheduling is disabled. If you use the PoolId parameter, do not use the ComputeNode parameter in that same command.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Inputs

PSComputeNode

Parameters: ComputeNode (ByValue)

BatchAccountContext

Parameters: BatchContext (ByValue)

Outputs

Void