How I optimize my VDI images
Everyone has a different idea of what an “optimized image" is. Here I’ll lay out what I do to optimize my lab images to limit background noise and unnecessary CPU usage. Generally, I do this same process regardless of what platform I’m using. I’ve pieced this process together from first-hand troubleshooting and seeing some things that others are doing. YMMV
Background:
Any supported Windows release is fine to use. I prefer LTSC.
Process:
- Install from ISO, defaults – Activate the OS once booted up.
- Run Windows Updates, reboot, rinse and repeat until there are no more updates. Then reboot and check for updates once more to be sure.
- Open Explorer and navigate to C:\Windows\System32.
- Right-click CompatTelRunner.exe and click Properties.
- Under the Security tab, click Advanced, followed by Change Owner.
- Type in Administrators and click OK on of all 3 windows.
- Right-click CompatTelRunner.exe again and click Properties, Security tab. Highlight Administrators and click Edit.
- Put a check by Full Control and click OK. Say Yes to the Security Warning dialog and click OK to close the both the Security and Properties windows.
- Shift+Delete CompatTelRunner.exe, click Continue or Yes if prompted.
- In similar manner, take ownership of “C:\Windows\SysWOW64\OneDriveSetup.exe”
- Right-click, Properties, Security, Edit again.
- Remove all existing ACL’s and add in only one for Everyone with DENY for Full Control.
- OK out of all Windows, clicking Yes to any prompts.
- Open Windows Security, Virus & threat. Click Manage settings.
- Turn Off all of the switches, clicking Yes if prompted.
- In gpedit.msc, Computer Configuration:
- Windows Settings, Security Settings, Local Policies, Security Options
- Enable “Domain member: Disable machine account password changes”
- Administrative Templates, Windows Components, Windows Update
- Disable “Configure Automatic Updates”
- Windows Settings, Security Settings, Local Policies, Security Options
- In Regedit, delete the following Key: HKLM\SYSTEM\CurrentControlSet\Services\DiagTrack
- Install the LW runtime installer package*
- Run the optimizer tool of your choice. ie, VMware, Citrix, etc
- Shutdown and take a snapshot.
At this point I consider this to be an "optimized image".
*Step 8 needs to be consistent on both your ProfileUnity VDI images as well as the FlexApp Packaging Console. If one has all run-times installed, the other needs them as well. Runtime Installer Package: https://www.liquidware.com/support/articles/360042135011-Runtime-Installer-Package