Upgrading to SCCM 1702

Yesterday was the day! The change request was approved so I could upgrade the site to the latest version 1702. In this post I will give you a quick walkthrough of that update.

The first step I performed was checking if all backups were ok. They were…

Updates and hotfixes are being managed from SCCM so no more searching for the latest hotfix or update. You can find them through Administration, Cloud Services, Updates and Servicing. BTW 1702 changes that location… So we’re on the 1610 version and 1702 is available. As you can see in the picture the prerequisite check was successful.

Select the update ‘Configuration Manager 1702’ and choose ‘Install Update Pack’ from the ribbon. The Updates Wizard will start…

You could select the ‘Ignore any prerequisite check’ option but I would only do that for a test environment. So click Next.

Enable the features you want to enable but for pre-release features you must give your consent up front… Click Next.

If you have a pre-production collection select the option ‘Validate in pre-production collection’ and browse to that collection. If you don’t have a pre-production collection just click Next. But be aware… The Client Installation package will be overwritten.

Accept the License Terms and Privacy Statement and click Next.

Check the summary and click Next. The update process will start.

When the wizard is done click Close. Now sit back and relax and wait for the upgrade to finish.

If you want to check the progress go to Monitoring, Updates and Servicing Status.

You could also check the file cmupdate.log on the site server.

During my upgrade I had one little issue. I had to restart both SMS_EXECUTIVE and SMS_DATABASE_NOTIFICATION_MONITOR service. For some reason they crashed which paused the upgrade process. After restarting the services the upgrade continued. If I can find the time I will investigate this issue.

Restoring Task Sequences the easy way

A while ago I was asked if it was possible to restore a Task Sequence. My first reaction was “of course”. But digging into the problem I quickly realized I would need to restore the entire ConfigMgr database. And because it was a primary site under a CAS I was a bit reluctant. The immediate need for the restore went away but it made me think of a more easy way of restoring a Task Sequence. This is what I came up with.

The backup of the database is being done from within SQL Server with a maintenance plan. I already added a SQL Agent Job to this Maintenance Plan so what if I could add a second job to create an export of all the excisting Task Sequences?

The first step was to create the code to export all Task Sequences.

import-module ($Env:SMS_ADMIN_UI_PATH.Substring(0,$Env:SMS_ADMIN_UI_PATH.Length-5) + ‘\ConfigurationManager.psd1’)
Set-Location CM0:
Foreach ($ts in Get-CMTaskSequence) {
    $ZipName = "\\server\share$\task-sequences\" + $ts.Name + ".zip"
    Export-CMTaskSequence -Name $ts.Name -ExportFilePath $ZipName

Then add this code as a Powershell script to a SQL Agent Job. Make sure that the service account that is running the SQL job has appropiate permissions in ConfigMgr.

To make it work I had to logon to the ConfigMgr console once with the SQL service account. This makes sure that all registry keys are there…

Now everytime that my SQL backup runs it also makes a zip file of every Task Sequence. Include the folder in your file level backup to add retention because the Export-CMTaskSequence cmdlet will overwrite existing zip files.

You could also use WMI Event Scripting to create a backup everytime a Task Sequence is changed… But that is something for the future.