Deployment, SCCM2012, SCCM2012RTM, SUP

Clean Superseeded and expired Software Updates with PowerShell ( SUP )

If you want more information WHY to clean expired and superseded updates you can get more information here from Kent Agerlund.

Also thank Nickolaj Andersen who made the script that does all the work!

Download the file here.

First step is to download the files and copy them to a folder of your choice. In the example, I am using C:\Temp

Open the file getAllSoftWareUpdates.ps1 with Powershell ISE as an administrator.

When the file is open you have to change three values , the first value we have to change is the SiteCode , so change the marked SiteCode S01 ( se the picture ) to the SiteCode you are using where you want to clean updates.
The second value we have to change is the “Client” value, this value represents the name of the software update group or groups that you want to clean, for example. If you have 10 “Client” groups and you want to clean all of those, you enter “Client” and if you have five different “Server” groups you change the value to “Servers”. This script will always take every group with the name you enter in the script.


The third and last value we are going to change is the “SiteServer” name ( se picture ) this can be any server with a provider installed ( I usually run this script on the primary site server then you know it will work , if you are not sure how many providers you have on your site ). After you have change the value go ahead and try to run the script.


If everything works it should look something like this  really nice that you can follow the progress in the console.

Deployment, MDT, SCCM2012, SCCM2012RTM

Deployment Tip! Reduce Toolkit Timeout

Hi everyone! I thought i should share this tip if you want to be able to speed up deployment a bit if you are using MDT or MDT integrated Task Sequence in Configuration Manager. The default Tookit timeout is set to 30 seconds and if you have a couple of “Use Toolkit Package” steps in you´r Sequence you add a couple of extra minutes to the deployment time. So this tip is useful to reduce the time it takes for actually deployment! I especially use this for LAB setups, the less you have to wait for stuff the better right?!
First, how to change the timeout on the MDT Deploymentshare
Step number one, navigate to the location of your MDT Toolkit folder located where you created the Deployment share, in my case it looks like this.

Navigate to the “Scripts” folder and locate the file ZTISCCM.wsf , open it with a tex editing tool of you´r choice like this.
Next step , changing the same setting on the MDT Toolkit package in CM.
When the document is open , search for 30000 , the results should look like screenshot below! This is the default “sleep” or waittime for the script before it runs all the Toolkit package scripts. Go ahead and change the value from 30000 to 5000 ( 5 seconds ).
close the document and test if you notice any difference!

Changing the Toolkit Timeout for SCCM.

To change this setting on SCCM open the SCCM console and locate the sourcefiles for you´r MDT Toolkit used in the Task Sequence.
click properties and then check the “data source” location.
Browse the location and open the scripts file, repeat the intructions above , DO NOT FORGET TO UPDATE THE DISTRIBUTION POINT afterwards.

Happy Deployment!

Deployment, MDT, SCCM2012

Apply latest CM hotfix during OSD

Here is an easy way to always keep the CM client up to date when you deploy new computers with SCCM.
Step one, create a new folder containing the hotfix and the cm client.
Go to the hotfix folder located under the installation path where you have installed CM.
For example,
E:\Program Files\Microsoft Configuration Manager\hotfix\KB2938441\Client

Copy the files there to a new Folder like this,
( use UNC share so clients can access the files )
\\cm2012r2\Sources\Apps\Client with C2 Hotfix\hotfix

After we have done that we need the rest of the CM client files , you can find those under the CM installation path, like this for example.
E:\Program Files\Microsoft Configuration Manager\Client

Copy all those files in the NEW folder we created in the first step, so it looks like this.

The next step is to create a new package in the CM Console and use the folder we just created as the source path.


Click next and chose DO NOT create a program.

When the package is created send the package out to all DPs that need the package for a successful deployment.
When the package is distributed, go to the OSD Task Sequence that you want to use with the updates package.
Go to the step “Setup Windows and ConfigMGR” click on browse and chose the newly created package like this.

Then edit the setup properties like this. ( Notice that you need to enter YOU´R OWN PackageID 🙂 )

And for future patches you just have to add the hotfixes in the hotfix folder then update the package, after that change the .MSP file and you are good to go!

Deployment, MDT, SCCM2012RTM, UEFI

I stumbled upon this problem when i was at a customer this week creating a Windows 8.1 image and was going to make the Microsoft Surface 2 Pro certified for deploying via CM2012R2.
As everyone knows the Surface 2 Pro uses UEFI and has no bios, and I constantly ran into different problems when trying to apply the operating system to the UEFI formated disk.
The error I got was the following (one of them after trying different fixes). ( the interesting part is highlighted with bold)

The task sequence execution engine failed executing the action (Apply Windows 8.1 Enterprise X64) in the group (Install) with the error code 2147942487
Action output: Command line for extension .exe is ”%1” %*
Set command line: ”OSDApplyOS.exe” /image:S02001F0,1 ”/config:S02001F6,Unattend.xml” /target:%OSDisk% /runfromnet:False
((g_Target.Disk > 0) || (arg == L”0″)) && (g_Target.Partition >= c_MinPartition), HRESULT=80070057 (e:\nts_sccm_release\sms\client\osdeployment\applyos\applyos.cpp,254)
ParseCommandLine(), HRESULT=80070057 (e:\nts_sccm_release\sms\client\osdeployment\applyos\applyos.cpp,429)
The /target parameter specifies an invalid target location.. The operating system reported error 2147942487: The parameter is incorrect.

So if we take a look at the default MDT Task Sequence in ConfigMGR ( note, that this problem only occurs on SCCM 2012 RTM , AND if you upgrade from RTM to a newer version)
The default looks like this, and this will break the first step in the UEFI deployment.
What we need to do there is to remove everything EXEPT the last step. ON BOTH STEPS that are enclosed with red.

When those are removed double click the OSdisk step and change the following. Change it to OSDISK, and as you probably figured out by now… THIS is what breaks it, the value here is not OSDisk but OSDTemporaryDrive…

The next step is to change the second part of the UEFI disk format step under the “Format disk” step. Make sure the “MAKE THIS THE BOOT DISK” is checked, this is NOT checked on RTM and will break the “apply OS” step later in the TS.

Also make sure the OSDisk Primary also uses the variable OSDisk!
Next step we need to change is the “Preserve driver letter” step in the sequence so that the image applies to the driver letter we actually created the reference image from. THIS CAN BREAK the TS if you are running Windows 7 deployment and uses the original .WIM from the source media ( NEVER DO THIS always create a reference image). Change the value from FALSE to TRUE.
The next step is to change the “apply operating system” and change the destination to logical driver letter stored in a variable to OSDisk.

Deployment, MDT, Okategoriserade, SCCM2012, UEFI

Advanced format disk , and unpatched Images

I ran into this problem a few days ago when i was going to certify new hardware for Windows 7 Ent SP1 x64 and x86. The process went fine when installing the drivers on the machines that used Windows 7 Ent SP1 x64, but when i depoyed the x86 version to the same hardware and the SAME drivers but for x86 i ran into a problem…

So my first thought was that this has to be driver related and tried to remove drivers from the driver-package and then re-deploy the machine, but i still ran in to the same problem…So after some googling on the problem i found this Technet article describing the problem.

I checked the patches installed on the x86 version of the image and suprice suprice there where NONE, so basically this was an RTM release of the media, so what is the fastest way of adding this KB to the image? create a new one ofcourse! ( In MDT always ). So i double checked that the KB982018 was installed before i did the capture and then i deployed the machined again and…BAM!! it works!

The old way of solving this issue was to change the SATA settings in the bios to IDE, but on new hardware that has UEFI firware has this option removed… ( not all but most ). So to solve this issue you need to update the image you are deploying or create a ”Advanced Format Disk” step in the Task Sequence in CM when formating the disk, but if you dont have the KB in the img it´s time anyway to create a new ref img ! 🙂

Happy Deployment!