Optimizing Windows 7 for VDI

It amazes me that we are still talking about how to deploy Windows 7 and that XP is still a mainstream OS, and likely will be until we get closer to 2014 when XP support ends. I find Windows 7 to be one of the best versions of Windows. Almost enough to get me to switch from Linux, almost. That said, I do a lot of VMware View work and my VDI clients ask what changes I make to speed up the VDI desktop.

Optimization of Windows 7 begins with the deployment of your first image. You can do this the traditional installation method, from a CD/DVD or from a deployment framework. If you dont' have one Microsoft has created some great tools to assist you with this framework. In particular the Microsoft Deployment Toolkit (MDT) creates a framework to deploy an automated repeatable process of generating an image. This is great for an Enterprise because it is very repeatable.

Creating this repeatable process happens in a number steps:

  1. Create the Target VM container. I recommend 32-bit, unless you need the 64-bit version for applications.
  2. Prepare the MDT environment.
  3. Create MDT Task sequence.
  4. Deploy Image to Target VM
  5. Optionally you can manually install additional applications.

The MDT uses a TS.xml file, the one I have attached originally came from VMware and provides a number of the recommendations and gives a GUI interface to viewing and editing the recommendations. There is an excellent pdf guide at VMware, here.

These are the changes that I typically make to the VM image:

  • As with Windows XP use the LSI Logic SCSI controller for disk access.
  • Remove the floppy drive
  • CD/DVD -- set to client device.
  • NIC -- VMXNET3 (you will have to start with E1000 if you use a MDT with a WinPE boot, until VMTools is installed and running.)
  • Remove unnecessary COM ports.
  • Remove these services/components:
    • Accessibility options;
    • Fax service;
    • Games;
    • Indexing Service/Windows Search;
    • MSN Explorer;
    • Outlook Express;
    • Windows Messenger.
  • Don't install BitLocker or the Extra partition required for it. It is not recommended to encrypt VDI virtual machines.
  • Disable the Desktop Window Manager Session Manager unless Aero is desired or required.
  • Disable Disk Defragmenter. Hard Drive defragmenting will impact performance if run in a virtual machine.
  • Disable these services:
    • Diagnostic Policy Service
    • Home Group Listener
    • Home Group Provider
    • IP Helper -- only if you are not using IPv6
    • Microsoft iSCSI Initiator Service
    • Microsoft Software Shadow Copy Provider -- this is for VSS backups.
    • VSS.
    • Secure Socket Tunneling Protocol Service -- does this need a VPN?
    • Security Center
    • Superfetch
    • Themes
    • Window Backup
    • Windows Defender -- if you don't need Anti-Spyware/Malware, or have another solution.
    • Windows Error Reporting Service.
    • Windows Firewall -- the best practice is to use a GPO.
    • Windows Media Center Receiver Service
    • Windows Media Center Scheduler Service
    • Windows Search
    • WLAN AutoConfig
    • WWAN AutoConfig
    • UPnP Host Service -- Requires SSDP
    • SSDP Discovery -- used to discover UPnP devices.
  • Disable the Wallpaper and ScreenSaver. Use the same Registry for XP Optimization to set the ScreenSaver.

Put these Virtual Machines in a dedicated OU and Block Inheritance on this OU. This prevents you have having conflicting policies for your physical machines and your virtual machine. Loopback policy processing is useful when you want the policies applied to users according to where the computer account is located in AD.

Now you should have an optimized OS for VDI.
ts.xml