You are here:   Research
Register   |  Login
The quickest way to find articles is to use the below search option.

However, if you go to the end of this page, you also find the Blog archive (calendar format) that allows for browsing of older articles.


Author: Created: 3/20/2011 7:31 PM RssIcon
Tips and Tricks, guidance and real world deployment configurations
By Arwidmark on 1/25/2015 3:25 AM
Like the MDT 2013 Lite Touch post from yesterday, here is the same info but for ConfigMgr 2012 R2. In this post you find step-by-step guidance on how to deploy the Windows 10 Enterprise x64 build 9926, including driver injection support, with ConfigMgr 2012 R2 (integrated with MDT 2013 of course).

Step-by-step guide First, this is not supported so don’t blame me if something is not working.

Second, to make ConfigMgr 2012 R2 (integrated with MDT 2013) work with Windows 10 build 9226 image, including driver injection, you need to make sure WinPE 5.0 is updated with the new dism.exe and sub-components required to do offline servicing (otherwise driver injection fails). The trick is to simply have the the task sequence copy the right servicing stack to the WinPE 5.0 boot image, when deploying Windows 10 operating systems.

On your file share you use for your MDT 2013 package source files, copy the dism.exe and DISM folder from the Windows 10 build 9926 boot.wim file to MDT 2013 package, in my...
By Arwidmark on 1/25/2015 3:07 AM
Turns out that Sysprep is broken in Windows 10 Build 9926, but there is a workaround…

When trying to run Sysprep on a virtual machine with Windows 10 build 9926 installed you may be greeted with the following error message:

A fatal error occurred while trying to sysprep the machine.



Background info This only happens if the virtual machine is connected to Internet during setup.

If you open setuperr.log found...
By Arwidmark on 1/24/2015 7:31 AM
Still the development of MDT 2013 is hopelessly behind the technical preview releases of Windows. Until that happens you can still apply some custom hacks to the current version.

In Windows 10 Build 9926 you still need to add updated DISM files to the boot image (until the Windows 10 ADK is released), and due to the new “10.0.9926.0” version number, many of the MDT scripts, especially the LTIApply.wsf and ZTIUserStafe.wsf scripts has quite many string checks for “6.X” versions.

The problem is however that “10.0” is not higher than “6.2” when you do a string comparison. That means if you have a snippet that says:  

If Left(oEnvironment.Item("OSCurrentVersion"), 3) >= "6.2" Windows 10 will not fall into that If statement (since “10.0” is lower than “6.2” in a string comparison”).


The fix First, this is not supported so don’t blame me if something is not working.

In addition to have the the task sequence copy the right servicing stack to the WinPE 5.0 boot...
By Arwidmark on 1/21/2015 12:48 PM
Earlier today I got a question on how to nest sections in CustomSettings.ini to create a computer name. Here is how!

Note: For the record, I don’t recommend generating complex computer names based on site,laptop etc. Keep the computer names to a syntax PC+sequence or something like that (example PC00075). Easy to read, easy to keep track of etc. However, the nesting technique demonstrated here can be used for many things.

Multiple Sections In this example you see multiple settings, and a few custom values, coming together to form a computer name based on location, computertype and serialnumber. As usual when playing around with rules in CustomSettings.ini, use this PowerShell script to simulate the settings. Save time (and avoid pain) - Create a MDT simulation environment

The important part in the below script is the priorities, a custom variable...
By Arwidmark on 1/18/2015 12:58 AM
Last week I was debugging a task sequence that failed with errors 80070002 and 80190191 when it was trying to download the first package used by the task sequence. The first package the task sequence tried do download was the MDT 2013 package, use by the “Use Toolkit Package” action in the task sequence. There are typically three reasons for these errors to happen:

Network Access Account not configured properly Crappy (or just slow) Network Missing IIS components on the site server Network Access Account not configured properly Most times the 80070002 and 80190191 errors happens because the network access account is not configured correctly. When it’s not you see the following in the log:

First a few 401 errors, which are IIS (web) errors meaning authentication errors.

Second, a line where you clearly see the text: “Network access account credentials not supplied”

Obvious fix when this happens: Configure the network access account, use the “Test Connection” feature to verify...
By Arwidmark on 1/11/2015 4:42 AM
Duplicating, or copying task sequences within the same deployment share in MDT 2013 Lite Touch works is quite different compared with doing the same with ConfigMgr 2012 (SCCM 2012). When you copy a task sequence in ConfigMgr, you get a true duplicate. When you copy a task sequence in MDT 2013 Lite Touch within the same deployment share, using the Deployment Workbench, you only get a link to the original task sequence.

This means of you if you change the copied task sequence, you will also change the source task sequence.

By Arwidmark on 1/2/2015 4:14 AM
Every now and then you need to give a set of lab VMs access to Internet but still keep them on a separate, isolated network.

In this scenario, instead of relying on the physical host platform (Hyper-V / VMware), you use a virtual machine with multiple network adapters to do the routing. One benefit of doing that is that this works the same no matter what virtual platform you are using, and obviously that you don’t need to change the host network configuration (something that can be challenging/scary when remoting into a lab server in another city, like I do :) ).

Back in 2012 I wrote a guide on how to set up either a Linux-based router (still the most stable one) as well as with a Windows Server 2012 router, manually. That post is available via the below, together with video.

Using a virtual router for your lab and test environment

By Arwidmark on 12/30/2014 10:26 AM
Earlier this year I blogged about the automatic maintenance task in Windows Server 2012 R2 being EVIL, today it’s time for .NET Runtime Optimization Service spiking the CPU on one of my domain controllers after installing updates. Also happens when using the (quite new) November 2014 media for Windows Server 2012 R2 that includes several updates.

Update 2015-01-06: Added PowerShell snippets posted by Arjan Mensch and Keith Garner. Thanks!


By Arwidmark on 12/29/2014 9:58 AM
Had a great chat today with my good old “friend” Google Analytics :)


Top 10 blog posts Out of my 71 blog posts during 2014 (well 72 with this one), the following made it into top 10:

#1 - The Hydration Kit for System Center 2012 R2 is available for download

By Arwidmark on 12/27/2014 7:17 PM
I was surprised to see that the good old domain administrator reset password trick from Windows Server 2008 still works in Windows Server 2012 R2.

Thanks to Martijn Brant for reminding me of this.

Note: If using Windows Server Technical Preview Build 9841 you have to replace sethc.exe instead, and launch it via Ease of Access / High Contrast. Thanks Mr. Diagg for this tip!

Step-by-Step guide To reset the Domain Admin password in Windows Server 2012 R2 you do the following.

Shutdown the domain controller (VM most likely). Boot on the Windows Server 2012 R2 installation media or any other WinPE boot media. Open a command prompt; Shift + F10 if using the installation media. Rename the C:\Windows\System32\utilman.exe file to utilman.bak. Copy the C:\Windows\System32\cmd.exe to utilman.exe. Start the domain controller again. At the...