{"id":2082,"date":"2018-08-30T12:08:06","date_gmt":"2018-08-30T11:08:06","guid":{"rendered":"https:\/\/www.autoitconsulting.com\/site\/?p=2082"},"modified":"2025-07-26T22:44:44","modified_gmt":"2025-07-26T21:44:44","slug":"sccm-package-program-return-codes-reboot-behaviour","status":"publish","type":"post","link":"https:\/\/www.autoitconsulting.com\/site\/deployment\/sccm-package-program-return-codes-reboot-behaviour\/","title":{"rendered":"ConfigMgr Package and Program Return Codes and Reboot Behaviour"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>This post describes the ways that Microsoft Configuration Manager handles reboots for a Package &amp; 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.<\/p>\n\n\n\n<p>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&nbsp;<strong>Run Command Line<\/strong> step in this case.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Program Configuration<\/h3>\n\n\n\n<p>After creating a Program you can configure an action to perform after running.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"147\" src=\"https:\/\/www.autoitconsulting.com\/site\/wp-content\/uploads\/2018\/08\/SCCM_Program_After_Running.png\" alt=\"SCCM Program After Running\" class=\"wp-image-2137\" srcset=\"https:\/\/www.autoitconsulting.com\/site\/wp-content\/uploads\/2018\/08\/SCCM_Program_After_Running.png 472w, https:\/\/www.autoitconsulting.com\/site\/wp-content\/uploads\/2018\/08\/SCCM_Program_After_Running-300x93.png 300w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<p>The three options are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No action required<\/li>\n\n\n\n<li>Program Controls Restart<\/li>\n\n\n\n<li>Configuration Manager restarts computer<\/li>\n<\/ul>\n\n\n\n<p>This configuration interacts with the deployment type and program return code to change how ConfigMgr handles a reboot scenario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deployment Types<\/h3>\n\n\n\n<p>Packages and Programs can either be deployed directly to a collection or through the&nbsp;<strong>Install Package<\/strong> step in a Task Sequence. They can also be deployed in a Task Sequence indirectly using the&nbsp;<strong>Run Command Line<\/strong> step.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ConfigMgr Return Codes<\/h3>\n\n\n\n<p>The meaning of return codes for Package and Program deployments is defined in the Configuration Manager site control file. Codes are assigned into three categories:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Success<\/li>\n\n\n\n<li>Success and Reboot Required<\/li>\n\n\n\n<li>Failure and Retry Required<\/li>\n<\/ul>\n\n\n\n<p>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 &#8220;<a href=\"https:\/\/www.autoitconsulting.com\/site\/deployment\/sccm-package-success-reboot-retry-return-codes\/\" target=\"_blank\" rel=\"noopener\">ConfigMgr Package Success, Reboot and Retry Return Codes<\/a>&#8220;.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Full OS &#8211; Package &amp; Program<\/h2>\n\n\n\n<p>This scenario is when a Program is deployed to a machine running the full operating system and ConfigMgr client.<\/p>\n\n\n\n<p><strong>Mode: After running: No action required<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td class=\"has-text-align-left\" data-align=\"left\">Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\">0<\/td><td>No automatic reboot<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\">3010<\/td><td>No automatic reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Program Controls Restart<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages<\/td><\/tr><tr><td>3010<\/td><td>Waits 60 seconds for program to reboot itself. If no reboot occurs will continue installing other Packages<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Configuration Manager restarts computer<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Prompts for restart and gives 90 minute countdown<\/td><\/tr><tr><td>3010<\/td><td>Prompts for restart and gives 90 minute countdown<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Full OS &#8211; Task Sequence &#8211; Install Package<\/h2>\n\n\n\n<p>This scenario is when a Task Sequence is deployed to a machine running the full operating system and ConfigMgr client. The Program is deployed within the Task Sequence using the&nbsp;<strong>Install Package<\/strong> step.<\/p>\n\n\n\n<p><strong>Mode: After running: No action required<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>No automatic reboot. Task Sequence continues<\/td><\/tr><tr><td>3010<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Program Controls Restart<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><tr><td>3010<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Configuration Manager restarts computer<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Prompts for restart and gives 90 minute countdown<\/td><\/tr><tr><td>3010<\/td><td>Prompts for restart and gives 90 minute countdown<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">OSD &#8211; Task Sequence &#8211; Install Package<\/h2>\n\n\n\n<p>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&nbsp;<strong>Install Package<\/strong> step.<\/p>\n\n\n\n<p><strong>Mode: After running: No action required<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>No automatic reboot. Task Sequence continues<\/td><\/tr><tr><td>3010<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Program Controls Restart<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><tr><td>3010<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<p><strong>Mode: After running: Configuration Manager restarts computer<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><tr><td>3010<\/td><td>Automatic reboot after 30 seconds unless program reboots itself. Task Sequences resumes after reboot<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Task Sequence &#8211; Run Command Line<\/h2>\n\n\n\n<p>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&nbsp;<strong>Run Command Line<\/strong>&nbsp;step rather than the Program defined on the Package.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Return Code<\/td><td>Result<\/td><\/tr><\/thead><tbody><tr><td>0<\/td><td>No automatic reboot. Task Sequence continues<\/td><\/tr><tr><td>3010<\/td><td>No automatic reboot. Task Sequence continues<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This post describes the ways that Microsoft Configuration Manager handles reboots for a Package &#038; 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.<\/p>\n","protected":false},"author":1,"featured_media":100234,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[59,62,91,68],"class_list":["post-2082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deployment","tag-configmgr","tag-deployment","tag-mecm","tag-sccm"],"_links":{"self":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/posts\/2082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/comments?post=2082"}],"version-history":[{"count":20,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/posts\/2082\/revisions"}],"predecessor-version":[{"id":100278,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/posts\/2082\/revisions\/100278"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/media\/100234"}],"wp:attachment":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/media?parent=2082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/categories?post=2082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/tags?post=2082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}