IT Consultant Everyday Notes

Just some problems/solutions storage

Category Archives: Windows 10

SCCM: Task Sequence Import fails (System.NullReferenceException)

I am leading a Windows 10 migration project currently. We prepared TAsk Sequences in Dev environment and SCCM admin tried to export/import them from Dev to Prod. Export was successfull, but Import miserably failed with


Object Reference not set to an instance of an object.

As usual very nice and descriptive SCCM error.

Fortunately Mike Terrill bumped into it before and wrote about it:

Note: When we tried to open a zip file containing TS archive using internal Windows Zip packer it failed. We used 7zip – it opens/saves the archive successfully.

SCCM: Windows 10 Service Plan. How to remove unnecessary languages and editions

I am in North America and only need en-us version of Windows 10 Enterprise Edition.

By default SCCM will put a multitude of languages and Editions in your Service Plan causing enormous size of Service Plan package.

Here is way how to limit it to Windows 10 Enterprise en-us only.

1. Limit Sync on WSUS used by your SCCM (Ideally before you even enable Upgrade option in your SCCM SUP properties):


2. Enable Upgrade option in properties of your SCCM SUP and sync updates if it is not done yet

3. Go to Windows 10 Servicing- Service Plans and start New Service Plan Wizard

4. Add English as Language filter and the following four lines in Title filter


5. Press ok in Search test page and click preview to see how it will be filtered. You should be able to see the version you need. In my case I see two


6. finish the Wizard. You should have a service plan ready for upgrade your Win10 machines to build 1607 (in my case)

Ideas are from comments to Kent Agerlund’s post here:

SCCM: SCCM needs update to use servicing feature for Windows 10 1607

Microsoft published a note: Update your ConfigMgr 1606 SUP servers to deploy the Windows 10 Anniversary Update.

It looks like SCCM servicing feature won’t work with KB and manual steps when use it for upgrade to W10 1607 (Anniversary Ed and following builds).


Workaround – use OSD.

SCCM: Windows 10 in-place upgrade Task Sequence improvements

MVP Johan Arwidmark published two things to change in standard SCCM CB Windows 10 in-place upgrade TS:

source is here

Adding Setup Upgrade Assessment and Driver support

As you probably know, ConfigMgr Current Branch has a built-in task sequence template for Windows 10 Inplace-Upgrades. This template is used for Windows 7/8/8.1 to Windows 10 upgrades as well as Windows 10 to Windows 10 upgrades (when a new build is available).
However, the default task sequence template for inplace upgrades are missing some useful features. This post shows you how to add them.

Adding Setup Upgrade Assessment and Driver support
The features I recommend adding to the Inplace-Upgrade task sequence is a setup upgrade assessment action, as well as support for injecting drivers.
1. Edit your Inplace-Upgrade task sequence, add an extra Upgrade Operating System action, configured it to continue on error, and rename it to Upgrade Assessment

Adding the upgrade assessment action.
The compatibility scan will always spit out a non-zero return code, for example 0xC1900210 which is the no issues found return code. The return code is set in a new read-only task sequence variable, the _SMSTSOSUpgradeActionReturnCode variable, and the reason for having a variable that, is so you can use it further down the line in the task sequence. The important thing is that even though Windows setup spits back a hexadecimal value, ConfigMgr reads it as a decimal value, so you need to do some conversion. For example 0xC1900210 in hex is 3247440400 in decimal.
2. Modify the Upgrade the Operating System group to use a task sequence variable as condition: Add _SMSTSOSUpgradeActionReturnCode, and set the value to 3247440400.

Configuring the Upgrade the Operating System group with a condition.
Next up is adding driver support, and in this example I had a Windows 10 driver package for a HP Elitebook 8560w.
3. In the Upgrade the Operating System group, add a new group named Drivers, and then use the new (for v1511) Download Package Content action to download the driver package. Also set a condition to only download the package if you’re deploying to that model.
4. Configure each Download Package Content action to save the path as a variable, in my case I used a custom path of C:\W10Drivers andW10Drivers as the variable

Adding Download Package Content actions with driver packages.
5. Finally, configure the Upgrade Operating System action to use the drivers by selecting Staged content to %W10Drivers01%.
Note: Don’t forget to add “01” to the end of the variable or it won’t work.

OSD: Microsoft Surface Deployment Accelerator

Video on a new Surface Deployment Accelerator (native MS tool integrated with MDT 2013 Upd 1) :

SCCM: Upgrade TS does not process post-upgrade section

SCCM: Be careful with Windows 10 Servicing Plans!

SCCM CB (Currently 1511) supports new Windows 10 Servicing model. There is an option to create a Custom Servicing Plan an deploy it to a collection od Windows 10 Computers.

This approach is similar to Automatic Deployment Rule for regular updates. It will automatically download and put the new builds in a Deployment package.

There is a huge surprise though:  Custom Servicing Plan will download/distribute to DPs all versions of the build (different languages and Windows Editions) regardless the language you selected during the Servicing Plan creation. Each build is currently ~2GB, so it will be significant amount overall. Not sure why MS decided to to that and where is their QC. Probably it is a part of a new policy when products are pushed to the market half-backed and tuned-up after.

At this point I would recommend do not use servicing plans, but just a right-click necessary build in build list, download/distribute this and only this build to deployment package/DP and deploy it to a collection the same way we do for regular updates.



Kent Agerlund also suggested to Decline all unnecessary builds in WSUS manually, in this case you should be able to use Custom Servicing Plans.

Windows 10: How to create/deploy provisioning packages

MIcrosoft published a nice article here:


Note: to use your package with SCCM utilize icd.exe command line in script.

Windows 10: Manage built-in applications

Nice article about installation/removing built-in Windows 10 Apps:

Azure: How to add W10 VM


Our company has MPN subscription to Azure. For some reasons Microsoft decided not to add Windows 10 template to Gallery and I needed to do it manually.

Josh Heffner has a nice description of the process.

I created a 10GB OS disk. It is quicker to download, but VM disk need to be expanded. I used the following procedure to resize the VM OS disk;

NOTE: I am using version 0.9.7 of Powershell Azure Module. Earlier versions may not support the disk resize.

Assuming Azure PS model is already installed.

1. I sign-in with my Microsoft account using Add-AzureAccount

2. Checked my Subscriptions using Get-AzureSubscription

3. Select subscription using Slelect-AzureSubscription “Microsoft Partner Network”

4. Check available disks using Get-AzureDisk | ft Label, AttachedTo, DiskName –AutoSize

5. Extend OS disk of my windows 10 VM using Update-AzureDisk –DiskName <DISKNAME> –ResizedSizeInGB 120 –label TinyVMOS

Note. The VNM must be in “StopppedDeallocated” state. You can Shutdown VM from Azure Console or from Powershell. Shutdown from OS itself is not enough.

Note 2: It tool 10 min between shutdown and the moment powershell command recognized that and proceeded resizing.