First published on CloudBlogs on Oct, 29 2014
June 16, 2015:
We have revised the sample content for the Windows 10 in-place upgrade via task sequence. We have removed the sample content that was provided with this blog post. You will find new scripts and sample task sequence in the following blog post
Aaron Czechowski, Senior Program Manager, Enterprise Client and Mobility
information about support for Windows 10 in the next version of Configuration Manager as well as previous versions. We know you are excited to deploy Windows 10, so I’d like to share an early look into how we plan to support the new in-place upgrade scenario.
First of all, why upgrade? Refresh (wipe-and-load) is the workhorse of many enterprise deployments, but we all know it can have some challenges. While the upgrade scenario is not new, the technology behind it has greatly improved. Upgrade can be much faster than a refresh, maintains applications, doesn’t require the User State Migration Tool for restoring user data and settings, and is more resilient to problems via its built-in rollback mechanism. Now, if you’re thinking to yourself, “woah, does this mean wipe-and-load is going away?!” Fear not, we’re not replacing any traditional deployment mechanisms. This is just another tool in your deployment toolbox.
As we looked at how to implement the upgrade scenario in Configuration Manager, our goal was to integrate it in a manner that’s consistent with other operating system deployment processes. In other words, wire it up in the task sequence. So instead of just deploying the Windows installation media with a setup command line, we can leverage the power of the task sequence for pre- and post-deployment actions, detailed status reporting throughout most of the process, rich user experience options, and much more.
Now here’s the cool part: since there are no dependencies on the Windows ADK and this is basically just a package with content and a task sequence, the basic scenario will work with
System Center 2012 R2 Configuration Manager
. Let’s take a look at how this works.
A System Center 2012 R2 Configuration Manager site is already installed and configured.
Configuration Manager clients are deployed and running at least Windows 7.
Windows 10 Technical Preview media is available (as pictured).
Download the .zip archive attached to this post (below), and extract it to a network share. It should look like this:
Windows vNext Upgrade Media (empty)
Windows vNext Upgrade Scripts
Copy the contents of the Windows 10 Technical Preview media into the “Windows vNext Upgrade Media” subfolder.
Configuration Manager Console
, switch to the
, and select
Import Task Sequence
Enter the UNC path to the Windows-vNextUpgradeExport.zip and click
The File Content page will display the following objects with the action, Create New:
Windows vNext Upgrade Media (Package)
Windows vNext Upgrade Scripts (Package)
Windows vNext Upgrade (Task Sequence Package)Click
Review the summary and click
Distribute the content of the two packages to appropriate distribution points.
The “Windows vNext Upgrade” task sequence can now be deployed to clients. (See the TechNet article on
How to Deploy a Task Sequence
if you need more information.)
Task Sequence Details
This is what you’ll see when you edit the newly imported task sequence. Let me tell you a bit about how this is designed to work.
: these are the minimum system requirements for Windows but can be adjusted as necessary for your environment.
: This runs a corresponding Windows PowerShell script (PreSetup.ps1) to perform a variety of necessary actions prior to running Windows Setup.
: A simple copy of some scripts to a known, local staging directory to be referenced elsewhere in the process.
Additional steps can be added to the
group as needed.
: This is where setup is actually run from the media package to automatically upgrade Windows.
Recover from Setup Failure
: The task sequence is configured such that this step is only processed if the Upgrade Windows step fails. It runs the RecoverSetup.ps1 script to revert the actions taken by PreSetup, then purposefully fails the task sequence. The computer is still in a usable and manageable state.
: The task sequence is configured such that this step is only processed if the Upgrade Windows step succeeds. These three steps (Upgrade Windows, Recover from Setup Failure, and Restart Computer) need to be kept together for the process to work properly.
If you’re familiar with the under-the-hood process of the
Setup Windows and Configuration Manager
step that is used in the traditional image deployment task sequence, a similar process happens at this point. Windows restarts into a low-level mode to perform the upgrade and there are two possible outcomes:
Upgrade completes successfully. At the end you’ll see the words, “Setting up a few more things 100%” which is when the SetupComplete process is started. The associated Windows PowerShell script (SetupComplete.ps1) runs to remediate the Configuration Manager client on Windows 10 and restart the task sequence in the
Upgrade encounters a problem and rolls back the system to the down-level operating system. Once the previous version of Windows boots, but before the logon prompt, the SetupRollback process is started. The associated script (SetupRollback.ps1) runs to restart the task sequence in the
: as mentioned above, this group is processed when setup successfully completes. Additional steps can be added to this group as needed, such as
Run PowerShell Script
Install Software Updates
step is provided as an example. The
step just removes the local staging directory.
: this group is only processed in a rollback scenario. Additional steps can be added to this group as needed, for example to copy logs to a network share. The
Trigger Rollback Failure
step should be the last one in that group to purposefully fail the task sequence for proper status monitoring.