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 https://blogs.technet.microsoft.com/enterprisemobility/2015/06/16/revised-content-for-the-windows-10-in-place-upgrade-via-task-sequence-for-configuration-manager/.
Author: Aaron Czechowski, Senior Program Manager, Enterprise Client and Mobility
We recently posted 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.
- Open the Configuration Manager Console, switch to the Software Library workspace, expand Operating Systems, right-click Task Sequences, and select Import Task Sequence.
- Enter the UNC path to the Windows-vNextUpgradeExport.zip and click Next.
- 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 Next.
- Review the summary and click Next.
- Click Close when complete.
- 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
Check Readiness: these are the minimum system requirements for Windows but can be adjusted as necessary for your environment.
PreSetup: This runs a corresponding Windows PowerShell script (PreSetup.ps1) to perform a variety of necessary actions prior to running Windows Setup.
Stage Content: 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 Preparation group as needed.
Upgrade Windows: 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.
Restart Computer: 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 Post-Processing group.
- 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 Rollback group.
Post-Processing: as mentioned above, this group is processed when setup successfully completes. Additional steps can be added to this group as needed, such as Install Applications or Run PowerShell Script. The Install Software Updates step is provided as an example. The Cleanup step just removes the local staging directory.
Rollback: 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.
As I mentioned above this is merely a taste of things to come. I wanted to provide an early preview of the in-place upgrade process via the Configuration Manager task sequence to help you better evaluate Windows 10 upgrade. So try it out, take it for a test drive, kick the tires, and let us know what you think in the comments below.
— Aaron Czechowski, Senior Program Manager
Configuration Manager Resources
This posting is provided “AS IS” with no warranties and confers no rights.