How to migrate only one specific folder with USMT.

I really had to scratch my head to solve this task. Maybe there’s an easier way to do this but this is how I solved a problem with a customer that only wanted to migrate one specific folder with USMT. All their users save all their personal data on their C-drive in a folder with a common name. I’ll call the local folder “Personal Data” in this blog post.

USMT is not good at opting in specific folders only. It’s more built to migrate everything plus that extra folder you need and then opt out some folders or filetypes that shouldn’t be included. But how do you exclude the C-Drive and at the same time include only one folder from the same drive?

Simply exclude C:\ and Include the “Personal Data”-folder and use the parameter to disregard all profiles. USMT can handle an Inclusion that is part of an Exclusion as long as the folders are in different components in the XML-file. See below. (Look at this article on Technet for more info on how USMT handles conflicts and precedence.)

That almost works.

It turns out USMT has some very quirky behavour. It did migrate my “Personal Data” folder but it also migrated all my *.wav default sounds in the Windows folder, some fax-coversheets and even some *.dll files that definitely wasn’t specified by me to be included. So, the solution was to exclude three folders that USMT tried to migrate anyway. The folders that were included by USMT contrary to my settings where these: C:\Program Files,  C:\Windows and C:\ProgramData.

Read More…Read More…

Build and Capture + Software Updates in Native mode

The goal of  this article is to describe how to insert Software Updates into the Base Image, the Windows-image you want to base your Operating System deployment on, in SCCM Native Mode.

In order to shorten the installation time of the operating system for your end-users you want to include as many patches and updates as possible in the image you’re deploying. But you want to include as few programs as possible so that you don’t end up updating your Golden base image every two weeks…

Obviously you will want to update your image with new Software Updates every once in a while – but that will not be manual labour but automated in the task-sequence that builds the Base Image.

I could have written a book about all the things I tried to get this to work… Let’s just establish the fact that Software Updates and in particular WSUS must have been written the morning after some very big Microsoft launch party…  ;-)

That said. I finally managed to get this to work. It took a a week of Googling, trial and error, troubleshooting, late nights and lots of coffee. And the silly thing is that’s it pretty easy to get it to work – if you know exactly what to do. As always.

I’ll summarize what this article does:

  1. Use only one Hotfix (KB2509007).
  2. Use SLP as a parameter for your CM-client.
  3. Check “Allow HTTP for roaming…” and rebuild the boot-image.
  4. Run a script to trigger software updates scan and run it a couple of times!

Read More…Read More…

USMT Offline Migration in Windows PE with Hardlinks

This is something I wanted to do a long time and thanks to Niall Bradys excellent guide at it was easy. Except for the parts that were hard. :-) There seems to be a few problems with USMT4 at the moment. Especially with 64-bit Windows 7. I’ll tell you in a sec. what I ran into…

I also wanted to make Niall’s Task Sequence a little shorter with VBScript, I like my Task Sequences short and snappy. Or at least, as short as they can be. Peter van der Woude also has a post on this, but hey, I’m using VBScript! :-)

Let’s get on with it. What are we talking about here? User backup of all important files, bookmarks, user profiles and their desktops using Microsoft User State Migration Toolkit v4. We want to do this not from within Windows but during the Windows PE state before we apply a new OS.

The good thing about doing this in Windows PE and with Hardlinks is pronounced Speed. Hardlinks make file copying locally and over the network unnecessary. It needs no extra disk space and there won’t be any locked files as when you’re doing migrations from within Windows. It’s not magic but it’s pretty close.

Also if you have a computer that doesn’t boot into Windows but has lots of important files on it and with a readable disk – this is the only way to copy that data.

The only thing you can’t do with USMT and Hardlinks in Windows PE is if you’re replacing the hardware. USMT with hardlinks in Windows PE mode is for re-installing the computer with a new OS (or OS version) only. For other scenarios you need a server-state store. That method is not covered in this post.

Let’s jump straight to business. Here’s what my Task-sequence looks like, stripped off stuff that’s not important for what we’re trying to illustrate here.

First a short overview of what it does. All the meaty details are further below. You can download the entire Task Sequence here. (Rename it to *.xml and import into SCCM.)

Read More…Read More…

Error poetry

An error occurred during client rendering.
An error has occurred during report processing.
Query execution failed for dataset ‘DataSet2’.
The EXECUTE permission was denied on the object
‘PowerManagementGetPowerCapabilities’, database ‘SMS_CEN’, schema ‘dbo’.

Right, so you’re trying to view a report in Reporting Sevices that you copied from ConfigMgr and now you’re getting this. What is wrong? The SQL-account you’re using to access the Reporting Services database simply has insufficent  rights. That’s what the message above is trying to tell us.

The error in Internet Explorer

After some trial and error I gave my Reporting Services SQL-account rights as db_datareader and smsschm_users in the ConfigMgr database (SMS_<sitecode>). See screenshot below:

After that, reports work great.


Subscribe to reports with SQL Reporting Services

Subscribing to reports is really great to show to upper managment. How do you make that work? It’s not too hard actually. You just need to give ConfigMgr a username that has access to the database so that Reporting Services can save the information in the database. I use the same account for that as the account I specified during the installation of SQL Reporting Services. If you run into access problems, check my post above this one.

Right click on your Server below Reporting Services in ConfigMgr.


... after that you should be able to subscribe to reports.


Reporting Services configuration can be tricky…

…very tricky indeed. I had no idea how complicated it can be until today.

In this installation of SCCM 2007 R2 (in my case R3) with SP2 – Configuration options where greyed out in the “Copy Reports Wizard” as well as when you right click the Reporting Services Server icon below Reports in the SCCM-console.

According to Microsoft this can happen if you run more than two instances of SQL Reporting Services on the same machine and that’ll make ConfigMgr confused since it automatically selects the default instance of Reporting Server through WMI. I’m pretty sure  this issue happens if you choose “Install but do not configure the report server” during the SQL 2008 installation instead of “Install the native mode configuration”. I have to test this in the lab but I’m guessing the SQL RPS instance never gets created if you don’t configure RPS and therefore SCCM can’t find it.

If you want to fix  this, all you need to do is to open Reporting Services Configuration Manager and configure RPS manually.

Read More…Read More…

When the boot image takes forever to load…

This one isn’t new but I haven’t encountered this problem until today.
My customers WindowsPE boot image took 1 minute and 15 seconds to load. This is when the PXE-server transfers WindowsPE to the RAM-disk via TFTP. In other words, before the OS-Image gets applied. Adjusting the TFTP-packet size might shorten loading times since larger packets needs fewer acknowledgements from the client. In my customers case it was the fix. With a packet size of 8192 the WindowsPE-image transfer took 26 seconds and with a packet size of 16384 the transfer took only 20 seconds. That’s going from 2mb/s to 7.5mb/s on a 100mbit link.

Previous to SCCM 2007 SP2 you had to download a hotfix but that’s no longer needed. All you need to do is add the following to your registry:

For SCCM 2012 the path is
Add the DWord-value RamDiskTFTPBlockSize and set the decimal value to 16384.

If your SCCM 2007  installation OS is 64bit the path is:


For 32 bit OSes and for SCCM 2007 the path is :


Here is the official Microsoft KB: KB968718

Don’t forget to restart the WDS-service after you change the registry-value.

Update! With SCCM 2012 build 1606 there’s a new registry option called “TFTPWindowsSize” to modify the window size of TFTP packages. (“The receive window is the number of bytes a sender can transmit without receiving an acknowledgment.” – Microsoft).

Jörgen Nilsson has done an excellent comparison on how the two registry values impact speed during the download of the bootimage. So have a look at his site here: