The Deployment Bunny

Subscribe to The Deployment Bunny feed The Deployment Bunny
OS Deployment, Virtualization, Microsoft based Infrastructure...
Updated: 28 min 37 sec ago

Nice to Know–Combine multiple application for multiple OS versions into one Bundle

Wed, 06/18/2014 - 12:49

A customer asked me:

“Mike, I’m deploying Windows 7 and Windows 8.1 and in some cases there is different versions of applications for different versions of the OS, but I would like to use Mandatory Applications in customsettings.ini based that is tied to model?”

That is a scenario that is rather easy to fix, however it can be fix in many different ways. Scripting is one, rerunning the gather step and use conditions based on other way, using OSVersionNumber is another. It could also be the situation that you for a reason is running Windows 7 x86 and Windows 8.1 x64 as your two different operating system and therefor you have different applications, but you would like to be able to have only “one” application. That way you can still use rules to deploy the application or you would make it easier for the technician that performs the deployment of the client. But here is one other trick:

Using Bundles with conditions

Let us assume that you are deploying Windows 7 and Windows 8.1 to a certain hardware model and that hardware requires a certain software and that the software comes in two different versions then you can do the following:

  • Import the Windows 7 and Windows 8 application.

    My two applications imported into Deployment Workbench.

  • Set the conditions for each application

    Conditions for the Windows 7 x86 application.

    Conditions for the Windows 8.1 x64 application.

  • Hide the Applications

    The “Install – Software for Model X – Windows 8.1 x64” has been hidden, repeat for the Windows 7 x86 application.

  • Create a bundle application
  • Add the both applications as dependences.

    Both applications have been added to the bundle.

If you install the bundle only one of the applications will be installed, since the dependences have conditions that does not overlap.

Using Customsettings.ini and MandatoryApplications to install each application for the correct operating system.

If you modify the rules in LiteTouch (customsettings.ini) you can now based on model use the bundle GUID instead of having to use two applications

Using MandatoryApplications001 with the GUID from the Bundle and installing it based on Model.


Categories: MDT

Nice to Know – A Geeks Guide for upgrading to ConfigMgr 2012 R2 and MDT 2013

Tue, 06/17/2014 - 18:48

Upgrading to ConfigMgr 2012 R2 is not a pain, but it could be. You really need to read and understand before you begin your journey.

The basic story is that you do an in-place upgrade and then fix “some” post items.

Just follow this fellow MVP and you should be good

Deployment Research (Johan Arwirdmark)


Categories: MDT

Nice to Know – How to speed up PXE boot in WDS and SCCM

Tue, 06/17/2014 - 18:08

“I feel the need, the need for more speed” does make sense to me.

By changing the the TFTP package size between the client and the PXE server you could achieve that.

So, if you really like speed and performance you might want to read a post that could help you.

How to speed up PXE boot in WDS and SCCM

During a PXE boot, when the boot image file is being loaded in the client, it should not take any longer than a few minutes time depending on the size of the boot.wim and your network. If it seems that your PXE boot times are extremely slow, you may be able to speed up the process by increasing the TFTP block size. This article will show you how to speed up PXE boot in WDS and SCCM.

Trivial File Transfer Protocol (TFTP) is the network protocol used for downloading all files during network boots. TFTP is an inherently slow protocol because it requires one ACK (acknowledgment) packet for each block of data that is sent. The server will not send the next block in the sequence until the ACK packet for the previous block is received. As a result, on a slow network, the round-trip time can be very long.

Follow the steps below to increase the TFTP block size in both a WDS and SCCM 2007 environment.

Read rest of the blog here

Categories: MDT

OSD–Using ZTISendMail to send email in a LTI/ZTI task sequence

Fri, 06/13/2014 - 09:33

Long time ago I had a need to send email an email in the end of the task sequence to notify the technician that the OS deployment was done, therefore creating a script which then ended up as a blog post at Deployment Research about two years ago. This week I’m running a Mastering Windows 7 and 8.1 OS Deployment using Lite Touch and Zero Touch in Minnesota and there where some requests on the subject so I decided to create a new version of the script and this time it is a PowerShell script instead. One of the request was to be able to send and email to the administrator that does the deployment (in Lite Touch) using the login name, so that need to to be taken under considerations to.

The script is tested in MDT 2013 but should work perfect in MDT 2012 Update 1 as well and it works when deploying Windows 8 and above.

Lite Touch

First you need to download the script and sample customsettings.ini  from here and store the PowerShell it in the MDT Scripts folder.

Option Number One: Using the UserID directly

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

The name used to login to the LTI Wizard is defined as UserID and that is then used as a part of the email address to send it to.

Option Number Two: Using the UserID with translation.

In this case we create a section for every user account that should have an email an can logon. As an example, if you login as Administrator (don’t use that account!) an email would be sent to, but you can have any other setting for that userID if you liketo.

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

Add a step in the TaskSequence.

Zero Touch

First you need to download the script and sample customsettings.ini  from here and store the PowerShell it in the MDT Package Scripts folder.

In the ZTI we don’t really have a UserID and therefore we just send the email to a predefined email address and cc to an other.

Update the CustomSettings like this. (you can copy and paste from the sample customsettings.ini files)

Add a step in the Task Sequence like this.

Update the settings package and the MDT Package.

If you need a SMTP server to test against, read this


Categories: MDT

Nice to Know–A simple and small SMTP Mailserver för Dev/Lab/Test (SMTP4DEV)

Thu, 06/12/2014 - 01:51

In the field, at hotel rooms, in VM environments, Demo setups and many other situations your are in the situation that something needs to be able to send an email and installing an Exchange Server at that time might be very wrong. So I have been using a really nice SMTP server that basically accepts anything, with any kind of settings and that has the ability to present all these mails in a single view. Extremely “handy” to have. Download it from

I use it to test OSD scripts, Orchestrator runbook jobs and things like that.

Snapshot of the UI

there are others to, but this one seems to be stable and fairly simple to use. Don’t forget to make sure that port 25 is open.


Categories: MDT

Nice to Know – Get rid of all junk before Sysprep and Capture when creating a reference image in MDT

Thu, 06/05/2014 - 10:06

When you create a reference Image it will in most cases it will be updated with patches and some more patches and then some… That will make the image bigger and therefore the deployment of that image will take longer and consume more network resources. That can be corrected by getting rid of superseded patches, junk, temp files and much more. MDT does take care of much using the wimscript.ini during the capture process, but not all, not the old updates among other things.

The Solution

Since MDT is the preferred method to create reference images you can download the script, import it as an application and then run the application just before the Sysprep and Capture step. The Script works for the following versions of Windows:

  • Windows 7 SP1
  • Windows 8
  • Windows 8.1 Update
  • Windows Server 2008 2 SP1
  • Windows Server 2012
  • Windows Server 2012 R2

However, to make this work in Windows 7 and Windows Server 2008 R2 you need to add a hotfix to Packages in MDT.

The script will use clenmgr.exe in all client versions of Windows. In Windows Server 2008 R2 it also uses clenmgr.exe, but it is never installed, instead it is copied from the SXS folder, that way we don’t need to install Desktop Experience. On Windows 8 and Server 2012 the script also runs the dism /online /clenup-image /startcomponentclenup and on 8.1 and server 2012 R2 the script adds the /Resetbase to make it impossible to remove patches.

Step By Step (kind of) Download the script

Download the script from here

Import it in MDT

Open the Deployment Workbench and browse to the Application node and import the folder you downloaded, giver it a name and as command line you type:

cscript.exe Action-CleanupBeforeSysprep.wsf 


Modify the Task Sequence

Open your task sequence and before the Sysprep and capture step, something like this works fine.


Add the HotFix (only for Windows 7 SP1 and Windows Server 2008 R2)

You need to add the patches in the deployment workbench. If you would like the deployment of the reference image to a bit faster, create three folders put the correct patch in each folder and then create corresponding Selection Profiles and modify the Task Sequence to use them. You download the update here

Here you can see the patches imported in the Deployment Workbench.

The patches you need.


Here you can see the Selection Profiles and the selection in one of them.

The Selection Profiles.

Here you can see how the modification in the Task Sequence.

The Task Sequence modification to inject the the correct patch to the correct OS.


Categories: MDT

TechEd NA 2014 – Here is my sessions on Channel 9

Sun, 05/25/2014 - 07:36
Top OS Deployment Issues with Answers from Experts

Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager: This Is How It Is Done!

Building the Perfect Windows 8.1 Image

Categories: MDT

Back to Basic – CustomSettings.ini – Sample 3 and a bunch more

Mon, 05/19/2014 - 10:59

Customsettings.ini is one of those text files in MDT/ConfigMgr that has a major impact on the solution, badly written the solution is a pain in the… correctly written and it works like magic…

A while back I created sample package, but I only published 2 of the samples in the package and now it is time for the rest of them:

  • Disable OSInstall.ini
  • Setting based on Computer type and location.ini
  • Settings based on Computer type.ini
  • Settings based on Default Gateway.ini
  • Settings based on MAC for servers.ini
  • Settings based on MAC.ini
  • Settings based on Model.ini
  • Settings based on TaskSequenceID.ini
  • Settings based on UserExit-Alias.ini
  • Settings based on VB Calculation.ini
  • Settings based on Virtual Machines.ini
  • Settings for UDI.ini
  • Using the SMSTSOrg.ini

To try them out in your environment you can just run:

cscript.exe “Path to your MDT folder”:\Scripts\ZTIGather.wsf /Inifile:”The Path to the .ini file you would like to test”

You can download the samples here:

(Note all these files has been made upon request from customers, so if you need one that I down have, ask me…)


Categories: MDT

Nice to Know – Switch from ImageX to DISM in MDT

Mon, 05/19/2014 - 09:09

Be default the capture process in MDT 2013 uses ImageX to capture the image, there is nothing wrong with that, well, it takes time since Imagex takes about 15 minutes or more just to scan the file system before it starts to capture the image and maybe you would like to get rid of that time. That is possible by doing some modification to one of the scripts in MDT so that it starts to use DISM.exe instead

The script that needs to be modified is ZTIBackup.wsf and you can download the updated version here. (Please make sure you have a copy of the previous version so that you can go back for any reason.)

As a bonus this also fixes the problem to append the wim file to an existing wim file.

  1. Download the file from here:
  2. Rename the Scripts\ZTIBackup.wsf to ZTIBackup.old
  3. Clear the Internet download flag from the new ZTIBackup.wsf.
  4. Copy the new ZTIBackup.wsf to the Scripts folder.



Categories: MDT

Nice to Know – MPIO “may” need to be configured correctly to increase performance when using Storage Spaces in Windows Server 2012 R2

Mon, 05/19/2014 - 08:15

This happens currently once a week, someone calls me and say “I’m using Storage Spaces with or without Scale Out file server and the performance is #”"!&%%&##”

There is many reasons but a very common is that MPIO be default is set to Round Robin and that is worse then bad.

Change the setting for all disks and for new disks as well by running the following command from en elevated PowerShell prompt:

Set-MSDSMGlobalDefaultLoadBalancePolicy LB

Read more here:

Also read the blog from Jose:

Categories: MDT

TechEd NA 2014 – The Scripts from my session – DCIM-B309 – Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager

Thu, 05/15/2014 - 08:30

Here is the sample scripts from my session at TechEd NA 2014 (DCIM-B309 – Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager: This Is How It Is Done!)


Channel 9:


Categories: MDT

Nice to Know – OS Deployment on TechNet – Check This out!!!

Mon, 05/12/2014 - 10:34

For many years TechNet has been the source of information for IT Pro’s, but in many cases it has been “This is what you could do”, leaving a lot of IT profs in a guessing game. For OS Deployment that has now changed, it is changing into “This is how you should do!” and that is VERY nice!

Go to

And check this out ASAP

(And yes, they hired external resources the help them get the best content ever…)


Categories: MDT

TechEd NA 2014 – PRC06 Deploying and Managing Windows in the Real World – Slides

Mon, 05/12/2014 - 09:15

You asked for the slides after our session, here they are


If you are looking for all the deployment links we talked about, you will find the here



Categories: MDT

Nice to Know–Bare metal deployment in SCVMM using Custom script and Custom resources could fail

Sun, 05/04/2014 - 10:05

The bare metal OS deployment function in SCVMM has the ability to be customized by adding custom scripts (also know as GCE). Basically there is two ways to do this, you either make sure the  script is in the WinPE image or you add it using recourses in the SCVMM Library. There are two locations for those scripts, Pre and Post and the problem seems to be true when we are doing Pre OSD GCE’s. So how do I know it fails then?, well that is not that hard. It will give you a very informative message in the job log like this:

Error (2941)
VMM is unable to complete the request. The connection to the agent on machine has been lost.
Unknown error (0x80072efe)

Recommended Action
Ensure that the WS-Management service and the agent are installed and running and that a firewall is not blocking HTTPS traffic.

And if you open the vmmAgentPE.exe.log file on the host you are deploying you will se this:

058C.05C4::05/04-12:23:13.425#00:OSDDownloadFileFromUrl.cpp(88)[000000000306EB: ThrowOnWin32Failure : 80072efe. Operation attempted WinHttpReceiveResponse(m_hRequest, NULL)
058C.05C4::05/04-12:23:13.425#00:exceptions.cpp(97)[000000000306EB: CarmineException::CarmineException: CarmineError: 1051488,  hr: 0x80072efe

If you look at the last file it tries to download you will see that it is trying to download the file and if you check the size of the file you will se that the size is 0 bytes and “carmine” does not like to transfer 0 size files in WinPE.


Modify the in notepad.exe and type whatever you like, close it, done. If you try once more it should work.


Categories: MDT

Hands-On LAB at LabCenter–Mastering Hyper-V 5-7 May 2014

Mon, 04/21/2014 - 10:58

Friend, I have an upcoming lab on Hyper-V 2012 R2, so if you would like to know what you really need to know about Hyper-V including management by PowerShell, VMQ, RSS, Architecture, Installation, Configuration, Migration and much, much more you should sign up for the class.


Categories: MDT

PowerShell is King – HP Scripting Tools for Windows PowerShell v1.1 is released

Mon, 04/21/2014 - 08:02

The 1.1 version supports PowerShell v3 and v4 and that means you can install it on Windows 8.1 and Windows Server 2012 R2. There is also some added CMDlets plus some minor changes.

Download it from!tab=features

Release notes is here (read them)


Categories: MDT

PowerShell is King–Use PowerShell to find out the file information in a file repository

Wed, 04/16/2014 - 06:45

This morning I was scheduled to install some software, one part of HP Service Pack was not installed, so I made the decision to just install that component, rather then re-running that Service Pack Setup (HPSUM). The quarion is, what file contains what I need? All files has just the CPXXXXXXX.exe? If I select properties from a file in explorer, I can see that it contains this:

Hmm, how could  I get that using PowerShell? Could it be “"Get-ChildItem”?

Running Get-ChildItem -Path \\cloud\dfs\Software\Applications\HP\swpackages -Filter *.exe gives me this:

and that does not help, but if adding | Select * will give me this:

So, the info is there, right, now how could I get rid of the junk…

Hmm, there is something called VersionInfo, lets try that…

Get-ChildItem -Path \\cloud\dfs\Software\Applications\HP\swpackages -Filter *.exe | Select-Object Name,VersionInfo | Out-GridView

Getting closer, bet still to much junk…

Maybe, this would work?

Get-ChildItem -Path \\cloud\dfs\Software\Applications\HP\swpackages -Filter *.exe | Select-Object -ExpandProperty VersionInfo | Select-Object -Property ProductName, ProductVersion, Filename | Out-GridView

Lets try that:

Yes, that seems to give the the result I like.


Categories: MDT

Nice to Know–Management Pack for Windows Server 2012 R2 Hyper-V has an Issue

Wed, 04/16/2014 - 04:52
The Issue:

ID: 26001 – Microsoft.SystemCenter.VirtualMachineManager.2012.Report.VPortUsageCollection

Got null results from Select Connection from Msvm_SyntheticEthernetPortSettingData where InstanceId=

The “Solution”:

To be honest, there is no real solution so far, the reason is that the MP is looking for the WMI data in the “old” V1 place, and in R2 that is gone, that information is in the new namespace V2. There should be a new MP, but so far I have not seen one. So the only solution is to turn this collector of and that solves only one issue. The event log looks “nice”. In my world that’s is not a solution…

Read more:

Categories: MDT

TechEd–New Session: Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager: This is How it is Done!

Tue, 04/15/2014 - 20:46

A very nice surprise.

At TechEd they have added more sessions to the DataCenter track and that means I’ve got a new session!

Bare Metal OS Deployment in Microsoft System Center 2012 R2 Virtual Machine Manager: This is How it is Done!

System Center Virtual Machine Manager 2012 R2 has bare metal OSD deployment built-in. This session is all about that. You will learn how to do discover, how to deal with drivers, networking and you will learn how to troubleshoot the process and most of all you will learn how to NOT troubleshoot, since you will learn how to do it correctly. You will also see how to deal with hardware configuration, firmware and such, expect lots of demos and PowerShell.

As you can see the session will be focusing on bare metal deployment, something I have been doing for many years now. Besides the actual deployment I will also show you how to do the network and storage related configuration to get VMQ to work correctly and some other stuff. This is going to be fun!

Note: If you are going to TechEd and you do join the session, please, step up to the podium and say hi.


Categories: MDT

Event – CA Accelerate IT PRO Camp, Stockholm 10,22,23 of April 2014 – Windows Client deployment and then some…

Mon, 04/07/2014 - 16:31

(in Swedish)

LabCenter kommer tillsammans med Microsoft att genomföra en dags workshops kring Windows 8 och Windows 8.1 klienten med fokus på administration och utrullning I föreatags miljöer. Cirka halva dagaen är förläsningar och demonstrationer och den andra halvan är hands-on. av dom 3 event vi kör så är 2 fullbokade, men det finns ett tillfälle med cirka 10 platser kavr och det är där du kommer in!

Vi visar hur du kan gå från en tidigare version av Windows och Office till en mer modern miljö och kunna dra nytta av de senaste teknologierna kring säkerhet och mobilitet.

Under dagen går vi igenom grunderna i Windows 8/8.1 och Office 365 klientutrullning genom interaktiva presentationer, demos och hands-on laborationer.

  • Introduction to Windows 8.1, Office 365 ProPlus and Office 2013
  • Image Creation, Lite Touch/Zero-Touch Deployment
  • Strategies & Office 2013 Deployment
  • Windows to Go Creation and Deployment
  • Windows 8/8.1 Security
  • Application Delivery with App-V
  • User Personalization with UE-V

Datum att välja på:
Stockholm 10 april 2014 – Fullt!
Stockholm 22 april 2014

Stockholm 23 april 2014 – Fullt!
Plats: LabCenter, Oxtorgsgränd 2, 111 57 Stockholm
Längd: 1 dag (09.00-16.30)
Instruktör: Mikael Nyström
Workshopen är kostnadsfri.

Läsa mer och anmälan –

Categories: MDT