This is a multi-part blog series focused on optimizing Windows 10 VDI
- Part 1: Optimizing default apps
- Part 2: Optimizing Windows services
- Part 3: Optimizing scheduled tasks
As we saw in previous blogs, Microsoft added new default apps, services and scheduled tasks into the base operating system of the Windows 10 Build 1703 (Creator Update). These updates will have an impact on the user experience, especially in a VDI implementation.
User Interface
The next step is to look at optimizing the user interface. Generally, the following list of User Interface optimizations have become standard across operating system releases. These modifications are meant to give the user a better experience from an application responsiveness perspective by disabling extra animations.
Optimization | Configuration |
Disable default system Screensaver | [HKEY_USERS\.DEFAULT\ControlPanel\Desktop] “ScreenSaveActive”=dword: 00000000 |
Disable the Windows 10 first logon animation | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] “EnableFirstLogonAnimation”=dword:00000000 |
Hide Hard Error Messages | [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows] “ErrorMode”=dword:00000002 |
Settings “Visual Effects to Custom” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects] “VisualFXSetting”=dword:00000003 |
Disable “Show translucent selection rectangle” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] “ListviewAlphaSelect”=dword:00000000 |
Disable “Show shadows under windows” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] “ListviewShadow”=dword:00000000 |
Disable “Animate windows when minimizing and maximizing” | [HKEY_CURRENT_USER \ControlPanel\Desktop\WindowMetrics] “MinAnimate”=”0” |
Disable “Animations in the taskbar” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] “TaskbarAnimations”=dword:00000000 |
Disable “Enable Peek” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM] “EnableAeroPeek”=dword:00000000 |
Disable “Save Taskbar Thumbnail Previews” | [HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM] “AlwaysHibernateThumbnails”=dword:00000000 |
Disable “Smooth edges of screen fonts” | [HKEY_CURRENT_USER \Control Panel\Desktop] “FontSmoothing”=”0” Note: For Windows 10, this optimization might not improve BW usage. |
Disable the rest of the visual effects | [HKEY_CURRENT_USER \Control Panel\Desktop] “UserPreferencesMask”=RegBin: “90,12,01,80” |
Disable cursor blink rate | [HKEY_CURRENT_USER \Control Panel\Desktop] “CursorBlinkRate”=”-1″ |
Disable Internet Explorer First Run Wizard | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\InternetExplorer\Main] “DisableFirstRunCustomize”=dword:00000001 |
Reduce menu show delay | [HKEY_CURRENT_USER\ControlPanel\Desktop] “MenuShowDelay”=”0” |
Runtime
We also need to optimize the underlying runtime environment to disable functionality that would provide little value in a non-persistent VDI environment. Generally, the following list of runtime optimizations have become standard across operating system releases.
Optimizations
Optimization | Configuration |
Disable hibernate | Powercfg -h off |
Maximum Performance | Verify BIOS is set for maximum performance and not low power. |
Antivirus definitions | If antivirus is installed and running within the virtual desktop, updating the definition file will prevent all desktops from updating on first boot up. |
Windows update | It is typically advisable to have the latest Windows 10 updates and security fixes before rolling out the image into production. Just remember that if the Windows Update service was disabled, it must be re-enabled to run the update. And if you had to enable it in order to run Windows Update, don’t forget to re-disable it. |
App updates | Many applications have integrated auto update functionality. These applications should be updated, then the auto update functionality should be disabled. |
Disk defragmenter | The disk might have become fragmented during installation and configuration, which will lead to less performance. Defragmenting the disk before rolling out will give better performance and reduce storage utilization. |
Registry updates
Optimization | Configuration |
Disable NTFS Last Access Timestamps | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] |
“NtfsDisableLastAccessUpdate”=dword:00000001 | |
Disable Memory Dump Creation | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl] |
“CrashDumpEnabled”=dword:00000000 | |
“LogEvent”=dword:00000000 | |
“SendAlert”=dword:00000000 | |
Disable default system Screensaver | HKEY_USERS\.DEFAULT\ControlPanel\Desktop |
“ScreenSaveActive”=dword: 00000000 | |
Disable Background Disk Defragmentation | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction] |
“Enable”=”N” | |
Disable Background Auto-Layout | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout] |
“EnableAutoLayout”=dword:00000000 | |
Disable the Windows 10 First | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] |
Logon Animation | “EnableFirstLogonAnimation”=dword:00000000 |
Increase Disk I/O Timeout to 200 seconds | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk] |
“TimeOutValue”=dword:000000C8 |
Daniel (Follow on Twitter @djfeller)
Citrix XenApp and XenDesktop 7.6 VDI Handbook
XenApp Best Practices
XenApp Video
Why not just run the vmware osot tool and let it do all the work?
LikeLike