Overview

This post describes the ways that SCCM handles reboots for a Package & Program deployment. The behaviour depends on the Program configuration, deployment method, and return code. For example, a Package will perform differently when deployed in a Task Sequence than when it is deployed directly to a collection.

This post will explain the different Program configuration options and deployment types and detail the resulting reboot behaviour for all the various combinations. The results are not always what would be expected. In particular, deployment of a Program within a Task Sequence can be problematic and it is usually more predictable to use the Run Command Line step in this case.

Program Configuration

After creating a Program you can configure an action to perform after running.

SCCM Program After Running

The three options are:

  • No action required
  • Program Controls Restart
  • Configuration Manager restarts computer

This configuration interacts with the deployment type and program return code to change how SCCM handles a reboot scenario.

Deployment Types

Packages and Programs can either be deployed directly to a collection or through the Install Package step in a Task Sequence. They can also be deployed in a Task Sequence indirectly using the Run Command Line step.

SCCM Return Codes

The meaning of return codes for Package and Program deployments is defined in the SCCM site control file. Codes are assigned into three categories:

  • Success
  • Success and Reboot Required
  • Failure and Retry Required

In this post we will be using the codes 0 (success) and 3010 (reboot required) as examples. For a full list of other possible codes see the post “SCCM Package Success, Reboot and Retry Return Codes“.

Full OS – Package & Program

This scenario is when a Program is deployed to a machine running the full operating system and SCCM client.

After running: No action required
Return CodeResult
0No automatic reboot
3010No automatic reboot

 

After running: Program Controls Restart
Return CodeResult
0Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages
3010Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages

 

After running: Configuration Manager restarts computer
Return CodeResult
0Prompts for restart and gives 90 minute countdown
3010Prompts for restart and gives 90 minute countdown

 

Full OS – Task Sequence – Install Package

This scenario is when a Task Sequence is deployed to a machine running the full operating system and SCCM client. The Program is deployed within the Task Sequence using the Install Package step.

After running: No action required
Return CodeResult
0No automatic reboot. Task Sequence continues
3010Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot

 

After running: Program Controls Restart
Return CodeResult
0Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot
3010Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot

 

After running: Configuration Manager restarts computer
Return CodeResult
0Prompts for restart and gives 90 minute countdown
3010Prompts for restart and gives 90 minute countdown

 

OSD – Task Sequence – Install Package

This scenario is when a Task Sequence is deployed to a machine running a bare metal Operating System Deployment. The Program is deployed within the Task Sequence using the Install Package step.

After running: No action required
Return CodeResult
0No automatic reboot. Task Sequence continues
3010Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot

 

After running: Program Controls Restart
Return CodeResult
0Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot
3010Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot

 

After running: Configuration Manager restarts computer
Return CodeResult
0Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot
3010Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot

 

Task Sequence – Run Command Line

This scenario is when a Task Sequence is deployed to a machine running a either a bare metal Operating System Deployment or within the full OS. The Program is deployed within the Task Sequence using the Run Command Line step rather than the Program defined on the Package.

Return CodeResult
0No automatic reboot. Task Sequence continues
3010No automatic reboot. Task Sequence continues