This page looks best with JavaScript enabled

Tales From The Real World: Windows 10 Deployment

 ·  ☕ 4 min read

I’ve been doing a reasonably large scale Windows 10 deployment recently and I thought I’d feedback on performance of my MDT setup, whilst also taking into account the specification and topology of the network. Below is a screenshot of the times of some successfully completed deployments for reference. As you can see, they’re in the vicinity of around 1hr 30m. Let’s delve into the specs of everything.


  • Windows Server 2016 Standard w/ Desktop Experience
  • 4x vCPU
  • 8GB RAM
  • Dynamically expanding VHDX for C:\ Windows
  • Dynamically expanding VHDX for E:\ Deploymentshare
  • 1x vNIC using the Virtual Host network adaptor

The config of the VM is really nothing special, and I could have done some extra work to optimise the configuration. The VM Host’s specs are:

  • HP ProLiant DL380p Gen8
  • Windows Server 2012 R2 Datacenter
  • 2x 8-core Intel Xeon E5-2690 with Hyper Threading
  • 32GB RAM
  • 4x 1Gbps NICs teamed via Static Teaming - and then this single teamed adaptor is visualised to Hyper-V as the vNIC
  • SAS RAID 1 array C:\ for Windows
  • SAS RAID 5 array E:\ for Deployment Share

Again, the server config could be optimised for better performance. The virtual host also hosts three other VMs, but they’re not heavily utilising the hardware. The network links between the MDT server and all the switches used in the deployment were 1Gbps and the edge connections to the client PCs and laptops were a mixture of 100Mbps and 1Gbps, which I believe is mostly likely the reason for the variations in the duration of the deployments. The devices shown in the screenshot above are between 1-3 years old. The specs range from i3’s and i5’s, RAM is between 2-4GB, most devices have standard 5400rpm SATA Hard Drives but the 1 year old devices all have SATA SSDs. Not shown in the screenshot above are some devices that are around 5-7 years old (yep!) with Core 2 Duo’s and 2-4 GB RAM, 5400rpm SATA Hard Drives and a mixture of 100Mbps and 1Gbps network links, and these PCs also had the same variation in deployment duration. Although I haven’t done any precise performance testing, just going off these figures, it seems that the network is the main bottleneck. The image being pushed is the same for all devices at 15GB and is a fully updated version of Windows 10 1607, with Office 2016, Adobe Creative Suite CS5, and a few other smaller Win32 packages. About a quarter of the time taken during deployment is the image being downloaded to each device, there was no multicasting enabled so the image is being downloaded by each client. I never imaged more than 30 devices at the same time during this deployment due to this limitation. The rest of the time is the device running through the installation from the image and then by running a Windows Update scan (although there’s no updates to install as the image is up to date, it still scans), running the final tasks and cleaning up. When the deployment successfully completes, the devices are ready to be logged on and used immediately. You might notice in the screenshot that a few of the deployments have more steps than the others. This is a separate Task Sequence for Laptops which has a few extra steps to install some additional post-deployment software and active via MAK keys instead of KMS. The laptop task sequence still uses the same core image as the desktops, so there is only one main image to maintain. As this deployment is a little different from the lab I wrote about in my previous posts, I’d thought I’d share what my production environment here has been. On my main workstation, I have MDT installed. I created an image build deployment share on my workstation, which I then use Hyper-V VMs to create and maintain the initial images. Here’s my Task Sequence for my main image build.

Build Task Sequence

I have a separate deployment share on the MDT server for the main production deployments. This means I can have a completely separate deployment environment for creating images all local to my workstation without interfering with deployments going on in the field. Here are the Task Sequences for laptop and desktop deployments.

Deploy Task Sequences

This is the first time I’ve done a large deployment with this exact setup, a lot of work has gone into preparing and testing it. I’ve used MDT for years now with Windows 7, but have gradually improved and automated my processes over time, with Windows 10 being the catalyst for this review and rebuild.

If you have any questions or comments please leave them below.


Share on
Support the author with