Installing CU3 for ConfigMgr 2012 R2

22 september, 2014

Earlier today the CU3 update for ConfigMgr 2012 R2 was released, containing a few nice to have fixes for ConfigMgr.

The full list of fixes, and link to request the hotfix is available here:

Backup your Site Server

Before continuing, make sure you have a SQL Backup of the Site Server. The update will update the site server database by default.

Running the CU3 Setup

Installing the CU3 update is the same process as previous updates. You make sure you have a SQL Backup of the Site Server, and that there are no pending reboots. You can use this PowerShell script to verify prior to running the setup:   Or the update will warn you if needed, or simply reboot the site server before installing the update.

Checking pending reboots prior running the update (don’t forget to “dot sourcing” the script”).

After that, simply run the setup (CM12-R2CU3-KB2994331-X64-ENU.exe) and navigate through the wizard.

Running the setup.

Setup completed successfully.

Update your ConfigMgr Client Package

Since both CU1 and CU2 has been released you probably have a good understanding about how to update the client package. You can either use SCUP 2011 to do it, and/or just update your existing client package with the new files. As with the previous updates, the setup will help you create update packages that you can deploy. After updating the client, the updated components have version 5.00.7958.1401.

The updated client.

Update your Task Sequence

The Task Sequence components of the client or also updated which means you should configure your task sequence to install the latest components. I like to that with the PATCH command in the Setup Windows and ConfigMgr action: PATCH=”C:\_SMSTaskSequence\OSD\PS10000C\Hotfix\x64\configmgr2012ac-r2-kb2994331-x64.msp

Configure the task sequence to install the latest client updates.

Update your Boot images

Since the CU3 update contains updated OSD files for the boot image, you need to update your boot images as well.

One of my x64 boot images updated.

/ Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Error during Windows 8.1 Setup – Could not process or parse unattend answer file

21 september, 2014

Earlier today I got an email from a fellow deployment geek having issues with Windows 8.1 deployments. He had an unattend file that worked perfect for Windows 7 deployments, but failed when deploying Windows 8.1. Now, it’s simply comes down to that Windows 8.1 does not support all unattend.xml settings that Windows 7 does.

So far the most issues are caused by the IEWelcomeMessage or ShowMenuBar values being set. The solution, simply get rid of them.

Step-by-step guide

  1. Start Windows System Image Manager (WSIM) and open your unattend.xml file.
  2. In WSIM, in the Answer File pane, expand the 4 specialize node, and select the amd64_Microsoft-Windows-IE-InternetExplorer_neutral entry.
  3. In the amd64_Microsoft-Windows-IE-InternetExplorer_neutral properties (right-hand window), right-click the IEWelcomeMessage property and select Revert Change.
  4. Repeat for ShowMenuBar setting in amd64_Microsoft-Windows-IE-InternetExplorer_neutral entry if needed.


The “famous” error message.

/Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Whats new in the September 2014 release of Windows ADK 8.1

16 september, 2014

On September 15, 2014 – Microsoft made the fourth release of Windows ADK 8.1 available. As usual without any explanation on what’s been changed :)

Windows ADK 8.1 history

First release, September 2013: 2.79 GB in size

Initial release, contained ACT 6.0, WinPE 5.0, and USMT 6.3

Second release, October 2013: 2.85 GB in size, subversion 8.100.26020 (Patches folder)

No new versions, just bug fixes.

Third release, April 2014: 2.97 GB in size, subversion 8.100.26629 (Patches folder)

In this release ACT was updated to 6.1, and a package to update WinPE to 5.1 was made available. The other updates was basically bug fixes.

Fourth release, September 2014: 2.97 GB in size, subversion 8.100.26866 (Patches folder)

Bug fix for dism and updates to the documentation (EULAs). Still ACT 6.1 and WinPE 5.0 with WinPE 5.1 update option.

In addition to dism to following deployment components had new versions, but I have not yet learned if its just artifacts of the build process, or if they contain any updates.

Imagex.exe: updated to 6.3.9600.17095

wdsmcast.exe: updated to 6.3.9600.17237

USMT: (all tools) are updated to 6.3.9600.17237

The updated Patches folder.

Download the fourth release

For an offline download, simply download the adksetup.exe file to a temporary location, and run adksetup.exe /layout C:\tmp\offlineADK81.

The Windows ADK 8.1 folder once all bits are downloaded.

Upgrading to the September 2014 release of Windows ADK 8.1

To upgrade to the latest version, run adksetup, and run through the setup wizard.

Upgrading to the latest version of Windows ADK 8.1.

/ Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

How to deploy Windows 8.1 (and Windows 7) with MDT 2013 – The Resources

9 september, 2014

Earlier this morning I got an email with some questions on how to deploy Windows using MDT 2013 Lite Touch. The questions were the basic deployment questions I hear over and over again so I thought it was about time to write a list of valuable deployment resources.

The questions

  1. How do I capture a Windows setup to a WIM Image, and do I need to sysprep the image?
  2. Once captured, How can I import the WIM image back into MDT again?
  3. How do I create and edit production task sequences?
  4. What about multiple partitions?
  5. How about creating an offline media?

The Resources

The following resources provide you with answers to the preceding questions, and much, much more. The resources are for Windows 8.1 but are valid for Windows 7 as well. I’ve organized the resources into the following sections:

  • Step-by-Step guides (free)
  • Virtual Labs (free)
  • Videos (free)
  • Commercial Videos (e.g. not free)
  • Books (not free either, but available on Kindle if your budget is limited).

Step-by-Step guides

On TechNet you find well-proven step-by-step guides.

TechNet Docs – Create a Windows 8.1 Reference Image

TechNet Docs – Deploy a Windows 8.1 Image Using MDT 2013

Server room interior

Virtual Hands-On-Labs

On TechNet Virtual Labs you can walk through each scenario, over and over again. Ready-made labs just waiting for you to connect. Yes, they are free :)

Creating a Windows 8.1 reference image

Deploying Windows 8.1 with MDT 2013 (Lite Touch)

Free Videos

The jumpstart videos is a collection of four videos, covering the basics of Windows deployment using MDT 2013 (and ConfigMgr/SCCM 2012 as well)

Windows 8.1 Deployment Jump Start


Commercial Videos

On the following link you find links to commercial videos sold by Pluralsight, Windows IT Pro, and TrueSec, The videos are developed by Deployment Artist.




On the following link you find links to deployment books available on Amazon, and most other book shops. The books are published by Deployment Artist.


Happy Deployment,

/ Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Powershell -DomainMode and -ForestMode

21 augusti, 2014

When you use PowerShell to install a new forest. The values for -DomainMode and -ForestMode are the following:

– Windows Server 2003: 2 or Win2003
– Windows Server 2008: 3 or Win2008
– Windows Server 2008 R2: 4 or Win2008R2
– Windows Server 2012: 5 or Win2012
– Windows Server 2012 R2: 6 or Win2012R2

You can use the numeric value or you can write it in text as shown above.

/Jimmy Andersson

Kategori: Instruktörernas inlägg Författare: Jimmy Andersson

Fix for MDT 2013 offline media deployment bug – Static IP addressing

19 augusti, 2014

If you are using MDT 2013 Lite Touch for offline media deployment, the feature to set a static IP during deployment doesn’t work. MDT will set the IP address in WinPE, but not in full Windows.

This is because of a bug in the Litetouch.wsf script, and the bug is for offline media only (not for normal network deployment, where the feature work as expected). You find more details in this post:
MDT 2012 Static IP for Offline Install

One workaround is obviously to edit the Litetouch.wsf script per the article, but the problem can also be solved by adding an extra Apply Network Settings action to your task sequence. Works perfect as long as you add it directly after the Gather local only action in the State Restore phase (see screenshots below)

Setting static IP address during deployment.

Extra “Apply Network Settings” action added to the task sequence.


Happy deployment,

/ Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Creating custom variables in MDT 2013

12 augusti, 2014

Yesterday I got a question in my twitter feed (@jarwidmark) about how to create a custom variable in MDT 2013 using a script. The answer is, yes you can do that, but you rarely have to, because you can create them directly in CustomSettings.ini to begin with. Anyway, some times it does makes sense to dynamically create custom variables in a script. In this post I demonstrate a few different methods for creating a custom variable.

Going back to the source

First, built-in variables are documented in the MDT 2013 help file, found via the Deployment Workbench “Help” menu, or in the file system: C:\Program Files\Microsoft Deployment Toolkit\Bin\Microsoft Deployment Toolkit Documentation Library.chm (default location).

The MDT 2013 help file.

Then MDT has it’s internal “document”, the ZTIGather.xml file that lists the variables, and also defines their behavior. For example if a property should have “first-writer-wins” or “last-writer-wins”. Here are few sample lines from the ZTIGather.xml file:

<!-- Properties that can be overwritten (last value wins) and are automatically set by the BDD scripts -->
<property description="The UNC path to the deployment share" overwrite="true" type="string" id="DeployRoot"/>
<property description="The drive letter mapped to the deployment share (Lite Touch only)" overwrite="true" type="string" id="DeployDrive"/>
<!-- Properties that cannot be overwritten (first value wins) -->
<property description="The new computer name to assign to the computer (used with ConfigMgr) " overwrite="false" type="string" id="OSDComputerName"/>
<property description="TimeZone Identifier for Windows Vista Builds (example: PST = 'Pacific Standard Time')" overwrite="false" type="string" id="TimeZoneName"/>


Creating a custom variable using CustomSettings.ini

The most commonly used method to create a custom variable is to add it to your CustomSettings.ini file. Here is an example, where two custom variables (or properties) are used for

Priority=HardwareInfo, Default
Properties=MakeAlias, ModelAlias

Creating a custom variable in the Task Sequence

Variables set in CustomSettings.ini are considered global by default, but you can create task sequence specific variable directly in the task sequence by adding a “Set Task Sequence Variable” action. Here is an example showing the custom HydrationMethod variable in a task sequence.

Adding a custom variable to a task sequence.

Creating a custom variable in a script

When needing variables created (or set) in a script, for example based on dynamic conditions, you can do that too by simply calling the task sequence object. This is exactly what the built-in ZTISetVariable.wsf script does, but you also find that most of the other MDT scripts do that as well.

<job id="ZTISetVariable">
    <script language="VBScript" src="ZTIUtility.vbs"/>
    <script language="VBScript">
    ' Create and set a custom varialble
    oEnvironment.Item("HydrationMethod") = "Simulate"


Happy deployment

/Johan Arwidmark

Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Azure IaaS Cost Estimator Tool

8 augusti, 2014

Until now, when evaluating datacenter compute resources and estimating costs in the cloud has been a challenge. Typically we’re looking at a physical or virtual machine configuration such as CPU size, memory, disk space and so on. However, there are other resources that are more difficult to estimate such as bandwidth usage, storage transactions, and estimated future capacity.

Imagine having 50, 100, or more servers. Performing estimates for 100’s of servers would not only be time consuming, it would be difficult because we’re only looking at a snapshot in time. We know over the course of a day or week a server’s consumption model of resources will change. We may end up missing critical information that could end up in underestimating the cost of a VM or service in the cloud. Underestimating resources could lead to unexpected charges. Not an ideal situation when we’re looking to either reduce costs or migrate resources to the cloud.

You will find the tool and more information here:

/Jimmy Andersson

Kategori: Instruktörernas inlägg Författare: Jimmy Andersson

Configuring system performance settings in your reference image – By Bill Burnley

5 augusti, 2014

Todays post is contributed by Bill Burnley, a fellow deployment specialist in the Washington D.C. Metro Area.

Solution to get System Properties Performance to work stick in our image

In our VDI environment, which is currently hosted built on VMware vSphere environment using linked clones, I had a problem getting performance settings to stick in our image. After a good few hours of research, I came up with a working solution.

The background

First, I had already built a fully customized windows 7 x64 and x86 image using Johan’s books, online deployment guides and information as well as leaning on our Image Subject Matter Expert Rob Moore. I was then directed to check out the VMware optimization guide for Windows 7 and Windows 8 located here: (  There is even an task sequence attached in which VMware provides several important changes, including some nice PowerShell examples. This is great, because it means that 90% of the things I would need to do post image install was done for me and I could turn on or off each option, prior to the rebuild. It also means that in the event that the VM goes bad somehow, a rapid rebuild can be performed.

Getting the sample files

The guide samples files are included as attachments in the PDF download, and to get them, go to the Adobe Reader View menu, and select Show/Hide > Navigation Panes > Attachments. From there you can simply save them.

Getting the sample files attached to the PDF document.

Using a local GPO for background image settings

If you review the optimization guide, you will find that there are certain things turned off, that would need to be turned on, if for example you want a custom background to show up.  Something that was critical early on for our implementation. For my installation, I turned off the ”Default Wallpaper” (forces blank wallpaper) setting, as well as ”Disable Desktop Window Manager Session Manager” (turns off aero).

I was already employing the copy profile option in my answer file as explained very well here by Johan (  if you haven’t already watched this, you should review it, because it is extremely useful information, especially if you have been trying to sysprep your images the hard way prior to utilizing them in MDT 2012 or higher.  However, even though I used this, in my VDI environment it still wasn’t showing my background.  even though, if I created a new user it was utilizing my background, something wasn’t working.  at this point, I threw in a local GPO to define the wallpaper and that worked!  Awesome.

But, there were other options that hadn’t been realized in our Full VDI environment that were not in the original optimization guide.  If you type in SystemPropertiesPerformance in a run dialogue box, you can configure the performance options.  There are other ways to get there via control panel, but I find typing it to be the easiest.

The performance options adjusted for best performance.

At first, the settings did not stick

It was recommended to us that I set those setting to adjust for best performance.  I did this but the setting didn’t carry over. I then proceeded to change the registry settings located in HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects. I thought by changing this registry setting in my master image and taking a snapshot, I would be good to go in our environment.  I also had made the changes and restarted my VM before the snapshot, so the changes were present in my VM as well as changed in the registry.

Problem was, this setting did not carry over to our linked clones, we still saw aero windows everywhere. But, the change had occurred in the registry. It turned out that it had saved the settings but not applied them to default user. This was bad news because it meant that even replaying the registry settings with a separate service (which we also employed for profile management) would not work. We tried many different registry settings before slamming our heads against the wall.  Finally, I was re-reading Johan’s post about copy profile and e-mailed him, because I decided I was going to start over with the gold image.  I re-captured it with the settings applied during my suspend phase.  This didn’t work the first time….  Later I would realize that this was probably due to my impatience…. When I went to check the answer file, it was building the catalog file and seemed like it was frozen.  I interrupted it, and even though I re-initiated it and it seemed to work, based on my second round, it appears that this was not the case.

Fixing the problem – The shotgun approach

The second time I did it, I decided I would try the shotgun approach:

  1. I rebuilt the image following Johan’s Copy Profile Post.
  2. When I get to where the suspend happens, I changed the Computer\HKCU\Software\Microsoft\Windows\Currentversion\Explorer\VisualEffects\VisualFXsetting to 2.
  3. I also saved a theme (with my custom background and settings.)  and tried to use a local GPO to force this theme. (this doesn’t show up in my image though, so guessing it didn’t copy over….)
  4. Rebooted after the changes
  5. Hit the shortcut to end the suspend

After I import my new reference image back into MDT, I reviewed the unattend file.  (Major advice alert: let the thing eat) it takes a while to load but its worth it. Mine took forever, but when it finally finished, I double checked my copy profile settings.

I redeployed the new image and viola, when I create a new user, they get the default system properties performance settings.  Then I redeploy to my vSphere VM.  Recompose the image to our VMware Horizon View Pools and test.  It works flawlessly now, and  we have moved on to bigger and better problems to work on.

-Bill Burnley

/Johan Arwidmark


Kategori: Instruktörernas inlägg Författare: Johan Arwidmark

Azure AD Connect

5 augusti, 2014

Microsoft created the Azure AD Connect to help you easily connect your on-premises Windows Server Active Directory to your tenant in Azure Active Directory with only 4 clicks!

To learn more visit our documentation at and the Active Directory Team Blog at

/Jimmy Andersson

Kategori: Instruktörernas inlägg Författare: Jimmy Andersson