Windows 10 (Build 1803) VDI Optimization Script Primer



AskPFEPlat is in the process of a transformation to the new Core Infrastructure and Security TechCommunity, and will be moving by the end of March 2019 to our new home at (hosted at Please bear with us while we are still under construction!

We will continue bringing you the same great content, from the same great contributors, on our new platform. Until then, you can access our new content on either as you do today, or at our new site Please feel free to update your bookmarks accordingly!

Why are we doing this? Simple really; we are looking to expand our team internally in order to provide you even more great content, as well as take on a more proactive role in the future with our readers (more to come on that later)! Since our team encompasses many more roles than Premier Field Engineers these days, we felt it was also time we reflected that initial expansion.

If you have never visited the TechCommunity site, it can be found at On the TechCommunity site, you will find numerous technical communities across many topics, which include discussion areas, along with blog content.

NOTE: In addition to the AskPFEPlat-to-Core Infrastructure and Security transformation, Premier Field Engineers from all technology areas will be working together to expand the TechCommunity site even further, joining together in the technology agnostic Premier Field Engineering TechCommunity (along with Core Infrastructure and Security), which can be found at!

As always, thank you for continuing to read the Core Infrastructure and Security (AskPFEPlat) blog, and we look forward to providing you more great content well into the future!


Hello IT Professionals. Robert M. Smith, PFE here, with a short blog post regarding Virtual Desktop Infrastructure (VDI). A peer of mine Tim Muessig (also PFE), developed a PowerShell script that can be used to optimize Windows 10 Enterprise, 1803, for use in a VDI environment.

This script goes through and performs the following actions:

  • Remove non-essential UWP apps
  • Disables several services
  • Sets some default user settings
  • Disables several scheduled tasks
  • Disables several Windows “auto-logger” startup traces
  • Applies dozens of GPO settings to local policy using the Microsoft Local Group Policy Object (LGPO) tool.
  • Runs disk cleanup using the Disk Cleanup Wizard
  • Changes network interface controller (NIC) settings, to optimize for networking performance

The PowerShell script uses core code in the main script to call and enumerate lists in the form of text files, of the various objects that will be changed. For example, the UWP apps to be removed are in a text file named ‘AppXPackages.txt’. If you decide that a UWP app on the list should not be removed, simply edit the ‘AppXPackages.txt’ file.

Once you download the tree of files, you are free to edit as you like for your environment.

There are a few dependencies of this script:

  • The script calls a number of text files for the various categories of items to remove or disable. Those files must be in place for the script to work correctly.
  • The script uses the ‘LGPO.exe’ Microsoft tool to import an included LGPO export of GPO settings from a generic Windows 10, 1803 virtual machine (VM). That tool must be included and in the proper location in your tree of files and folders for the script to function correctly.
  • The script and the text files must be all in the same folder, which can be any folder of your choosing.

The VDI script and associated files are publicly available on GitHub, at the following location:

This script is based on the same settings in a soon to be released white paper on optimizing Windows 10 1803 in a VDI environment. This blog post will be updated when that paper is published. The publication for this white paper will be the ‘’ knowledge repository.

Any comments and/or questions are welcome. Thank you for visiting the blog, and let us know if you have any suggestions for topics you would like to see in future blog posts.