• Home  / 
  • Research  / 

Notes and Links from Master Windows 10 Deployments – Expert Level session at Microsoft Ignite 2016 (BRK4023)

Here are some notes and links from our Master Windows 10 Deployments – Expert Level session at Microsoft Ignite 2016, compiled by Ami Arwidmark (@aarwidmark) who also helped out answering the questions coming in via Twitter (If you're not on Twitter, get on Twitter).

Link to video: http://www.youtube.com/watch?v=jULZkDUG6Rs  


Image Factory setup

Sample CustomSettings.ini files

Web Services

MDT Simulator

Manipulating the Microsoft Deployment Toolkit database using PowerShell



What you spend two weeks trying to customize, you can likely do in one line in the CustomSettings.ini file

CustomSettings.ini is read by ZTIGather – gathers info on the machine and converts what it gathers into properties with variables used to process the file.

ProTip: ByVMType should be BEFORE ByDesktopType

MDT Database

  • SQL express or real SQL – doesn't matter
  • Stored procedures – from CS.ini can call the stored procedure – for example generate computer name and use DB to keep track of that. So, why use Named pipes for MDT Database? SQL protocol that works very well in WinPE, and allows for trusted connection.
  • During the demo: Michael Niehaus PowerShell library was used to MDT Database, see link above for download.
  • Tip: if you have to run in clustered environment – make sure the DBA creates a files share
  • Tip: Local SQL is preferred whenever you can get away with it!

Prestaging Computers

  • Prestage machine in AD or SCCM instead? – it's much easier to have one entry point for all the data
  • If the data already exists somewhere, you can grab it with Webservices.

Image Factory

  • Use MDT to create reference images, even if you're deploying them by SCCM
  • Image Factory is using Hyper-V components (via LoadKVP function) to read a VM Name within WinPE, and use it to automate the complete deployment. Will build 1 wim file for each sequence you have per deployment share.

Extend CustomSettings.ini

  • UserExit Scripts – When CustomSettings.ini isn't enough
  • Perfect for use in Lenovo deployment scenarios – where the vendor doesn't follow the conventional standard (WMI Class) for branding the model. All the logic is in the script for normalization of vendor names. See above for link.


Use Webservices to assign setting during deployment, works great in WinPE, and is very useful to access external data since code the is running server side. Webservices gives you access external data to feed to CS.ini to be used in the TS so that you don't have to:

  1. spend too much time customizing a task sequence
  2. hardcode things to a task sequence

You could use: MDT DB, SCCM DB, AD, or make your own / Steal with Pride: Johan – Pretty good front end, Maik Koster Webservices. See links above.

Default sequence in SCCM when integrated with MDT has an action that installs legacy packages and another that installs app mode packages so you can use a front end to control app install behavior – don't need a collection, don't need a deployment – sequence just calls the app directly. To call on a Webservice in CS.ini you need to give it a name and a variable. In the example (link above), the following scripts are run before the action that installs the apps:

ZTIListPackages.wsf – lists packages

ZTIListApplications.wsf – lists applications

Use Runbooks in Task Sequence

Can run in MDT or SCCM, good if you aren't into coding. Very easy to accomplish common tasks, for example it can send an email with completed deployments, or move a computer from one OU to another.

About the author

Johan Arwidmark

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments