CCMEXEC.COM – System Center blog

CCMEXEC.COM – by Jörgen Nilsson

I have ran into this a couple of times now when moving site roles in Configuration Manager 2012. When uninstalling the WSUS server components from in this case the Primary Site server to move it to a dedicated server instead the Management Point on the Primary Site server started giving HTTP Error 500 Internal Server Error:


This was caused by the removal of the WSUS role on the server which removed almost all the files installed by the Windows Update Services but not the configuration written in the ApplicationHost.config file. The Applicationhost.config file tries to call the .dll installed by the WSUS Server but no longer exists on the system.

From the Applicationhost.config file:

<scheme name=”xpress” doStaticCompression=”false” doDynamicCompression=”true” dll=”C:\Windows\system32\inetsrv\suscomp.dll” staticCompressionLevel=”10″ dynamicCompressionLevel=”0″ />

<scheme name=”xpress” doStaticCompression=”false” doDynamicCompression=”true” dll=”C:\Program Files\Update Services\Webservices\suscomp.dll” staticCompressionLevel=”10″ dynamicCompressionLevel=”0″ />

Running the following command will remove all references to the module installed by WSUS.

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /-[name='xpress']

After that the Management Point is up and running again.

I have the great honor to be speaking at TechED 2014 in Houston together with Stefan Schörling.
The session is called “Microsoft System Center Configuration Manager Community Jewels”. We will present and demo many of the cool tools that are available created by the community and show how they can help you solve day to day headaches and makes your life a lot easier! Expect a lot of demos!

The session code is PCIT-B320

See you all in Houston!


Just realized I missed a release of a Configuration Manager book, “Configuration Manager book: High availability and performance tuning” by fellow MVP Marius Sandbu. A good introduction to High-availability.

You can find it here on PactPublishing


When building a new OS image it is a really good idea to include Visual C++ Redistributable packages in the image as well as .NET framework versions so that we don’t need to handle these software components as dependencies for all applications but have it included in the standard image instead. I also copy Cmtrace.exe to every location I can think of, like C:\windows on all clients when I create the image, extremely useful.

Here is a Knowledge-base article to bookmark “Latest Supported Visual C++ Downloads”

It contains information and links to all the latest versions of the Visual C++ Redistributable packages which makes it really easy to find the latest versions.

The link to the Visual C++ 2013 redistributable pacakge is not in page below, here is the link instead.


When enabling Bitlocker using Configuration Manager the step fails if there are a CD/DVD inserted. There are many great solutions to eject the CD/DVD before enabling Bitlocker out there.
As CD/DVD are not used at all that much anymore I was kind if annoyed that it ejected the CD/DVD every time and when enabling Bitlocker after OS deployment using a Task Seqeunce it could be interesting for the end-user when the CD/DVD is ejected.

So this script only ejects the CD/DVD when media is present in the drive. I have posted a powershell version on Microsoft Gallery:

But after several requests I have created a vbscript version as well which also ejects the CD/DVD if media is present.

Download it here: ejectcd

Or copy paste the code below:


'Created by Jörgen Nilsson,

'Version 1.0

On Error Resume Next
Set objWMIService = GetObject ("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk where DriveType=5")
For Each objItem in colItems
cdpresent = objitem.access
driveletter = objItem.Name
if cdpresent >0 then
CreateObject("Shell.Application").Namespace(17).ParseName(driveletter & "\").InvokeVerb("Eject")
Wscript.sleep 3000
end if

On Error Resume Next

Set objWMIService = GetObject ("winmgmts:\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk where DriveType=5")

For Each objItem in colItems

cdpresent = objitem.access

driveletter = objItem.Name


if cdpresent >0 then

CreateObject("Shell.Application").Namespace(17).ParseName(driveletter & "\").InvokeVerb("Eject")

Wscript.sleep 3000

end if


A really cool new announcement was just made: a new feature in Configuration Manager 2012 R2 / Windows Intune that makes it possible to provision ActiveSynce email profiles using ConfigMgr 2012 and Windows Intune. Thought that I would post this here as well as it is bigger news than just the fact that you can provision ActiveSync email profiles using Configuration Manager 2012 R2 and Windows Intune.

This new feature uses a new component in Configuration Manager 2012 R2 that makes it possible for Microsoft to publish new Windows Intune Mobile Device Management features to the Configuration Manager 2012 R2 console / site without having to do it in a Service Pack or in a new release.  This is a really cool feature as it makes it possible to ship new features more often than you could with the normal approach with Service Packs and R2 releases.

The Mobile Device Management segment is driving innovation really fast. I have several customers who now have more iOS devices in their environment than they have PC’s, so there is a big market out there.

The blog post about how to provision email profile can be found here:

Now it is time to provision some email accounts :-)

I have gotten a number of requests for some reports in ConfigMgr 2012 which I wrote for ConfigMgr 2007. Finally time to get around to do it. To start of I wrote this little guide for how to import a Configuration Manager 2012 Report using Report Builder. It is not really as simple as in Configuration Manager 2007 but much more powerful.

To import a report download an .RPL file like this one which I will write about in the next post (it requires ConfigMgr 2012 R2): Computers with a specific file per Collection

1. Browse to the Reporting Services webpage, by default http://server/reports as a user with permissions to edit reports.
2. Select Upload file

3. Browse to the file you want to upload and enter a friendly name to be shown in Reporting Services for the report.


4. Select “Edit in Report Builder” for the newly uploaded report.

5. Select “Add Data Source” as we need to change the data source to the on in the target environment.


6. The data source can be created from the configuration file in the root of the Configuration Manager reporting folder. Select “Browse”

7. Select the Data Source file available in the Configuration Manager reports root folder.

8. Delete the old data source that was in the report when it was imported.

9. To update the different Datasets used in the report with the new data source, select Dataset properties and then simply click OK.


10. Select OK and repeat it for all the Datasets.

Then the report is ready to be run and tested!

Optional steps: If the report is an exported Configuration Manager 202 report with the System Center logo banner complete the following steps as well.

1. In the Report Builder tool, right click on the header which has a red x because the file is not found.

2. Change the path to the path in your Configuration Manager Reporting Services folder under “Report Resources”

3. Repeat the steps for all three of the files in the header and you are done!

Now the System Center logo will be correct as well in the report.

As a result on all the feedback on the Configuration Manager 2012 tools list  blog post me and Stefan put together after our System Center User Group session and the fact that we couldn’t find any good list of tools when we prepared the session. I have created a TechNet Wiki page and posted the links to all the tools there.

Now everyone can edit and add your favorite tools to the list as well. Have you written a tool? add it to the list.
Let’s make this list a really good one together!