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.
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.
Return Code | Result |
0 | No automatic reboot |
3010 | No automatic reboot |
Return Code | Result |
0 | Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages |
3010 | Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages |
Return Code | Result |
0 | Prompts for restart and gives 90 minute countdown |
3010 | Prompts 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.
Return Code | Result |
0 | No automatic reboot. Task Sequence continues |
3010 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
Return Code | Result |
0 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
3010 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
Return Code | Result |
0 | Prompts for restart and gives 90 minute countdown |
3010 | Prompts 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.
Return Code | Result |
0 | No automatic reboot. Task Sequence continues |
3010 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
Return Code | Result |
0 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
3010 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
Return Code | Result |
0 | Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot |
3010 | Automatic 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 Code | Result |
0 | No automatic reboot. Task Sequence continues |
3010 | No automatic reboot. Task Sequence continues |