Soup Up Your Terminal Server: Optimizing Explorer's Network Performance

Update: The ADM file can now be downloaded here.

I recently came across a post in the Windows Server Performance Team's blog that lists several registry values which can be used to tune Explorer's SMB performance by modifying the following:

  • Searches for Desktop.ini files used for folder customization
  • Periodic refreshes of folder contents
  • Searches for supporting library (.dll) files
  • Individual file details and attributes pulled for each file
  • Thumbnail extraction

I found the tips very interesting, but also lacking background and explanation. That is why I looked up the the KB articles explaining the registry values mentioned and created an ADM template for easily setting the values via group policy.To give you a better feeling what we are talking about, here is the list of registry changes recommended by the original poster:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer] "UseDesktopIniCache"=dword:00000001 "NoRemoteRecursiveEvents"=dword:00000001 "NoRemoteChangeNotify"=dword:00000001 "StartRunNoHOMEPATH"=dword:00000001 "NoRecentDocsNetHood"=dword:00000001 "NoDetailsThumbnailOnNetwork"=dword:00000001 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MRXSmb\Parameters] "InfoCacheLevel"=dword:00000010 [HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\CryptoSignMenu] "SuppressionPolicy"=dword:00100000 [HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}] "SuppressionPolicy"=dword:00100000 [HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\{883373C3-BF89-11D1-BE35-080036B11A03}] "SuppressionPolicy"=dword:00100000 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\SCAPI] "Flags"=dword:00100c02 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager] "SafeDllSearchMode"=dword:00000001 "SafeProcessSearchMode"=dword:00000001


Of those settings, several go into the policies registry branch. But only the following is configurable via group policy by default:

  • NoRecentDocsNetHood: User -> Desktop -> Do not add shares of recently opened documents to Network Locations (supported only on: W2k, XP, W2k3)

All other settings are described in various Microsoft KB articles but cannot be set via group policy by default:

And then there are the following machine-specific settings that need to be set outside the policies registry branch as a tattooing policy:

The ADM template file I created allows for setting these values independently and, where applicable, either as part of the user or the computer configuration. It also contains the URLs of the relevant KB articles.

 

;
; Created 2007-11-07 by Helge Klein
;

;
; Machine settings
;
CLASS MACHINE

CATEGORY !!Optimization

CATEGORY !!ExplorerSMB

POLICY !!UseDesktopIniCache
EXPLAIN !!UseDesktopIniCache_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “UseDesktopIniCache”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!NoRemoteRecursiveEvents
EXPLAIN !!NoRemoteRecursiveEvents_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoRemoteRecursiveEvents”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!NoRemoteChangeNotify
EXPLAIN !!NoRemoteChangeNotify_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoRemoteChangeNotify”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!NoDetailsThumbnailOnNetwork
EXPLAIN !!NoDetailsThumbnailOnNetwork_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoDetailsThumbnailOnNetwork”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!InfoCacheLevel
EXPLAIN !!InfoCacheLevel_Help
KEYNAME “System\CurrentControlSet\Services\MRXSmb\Parameters”
VALUENAME “InfoCacheLevel”
VALUEON NUMERIC 16
VALUEOFF NUMERIC 1
END POLICY

POLICY !!SuppressionPolicy
EXPLAIN !!SuppressionPolicy_Help
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\CryptoSignMenu”
ACTIONLISTON
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\CryptoSignMenu”
VALUENAME “SuppressionPolicy”
VALUE NUMERIC 1048576
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}”
VALUENAME “SuppressionPolicy”
VALUE NUMERIC 1048576
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{883373C3-BF89-11D1-BE35-080036B11A03}”
VALUENAME “SuppressionPolicy”
VALUE NUMERIC 1048576
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\SCAPI”
VALUENAME “Flags”
VALUE NUMERIC 1051650
END ACTIONLISTON
ACTIONLISTOFF
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\CryptoSignMenu”
VALUENAME “SuppressionPolicy”
VALUE DELETE
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{3EA48300-8CF6-101B-84FB-666CCB9BCD32}”
VALUENAME “SuppressionPolicy”
VALUE DELETE
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers\{883373C3-BF89-11D1-BE35-080036B11A03}”
VALUENAME “SuppressionPolicy”
VALUE DELETE
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\SCAPI”
VALUENAME “Flags”
VALUE DELETE
END ACTIONLISTOFF
END POLICY

POLICY !!SafeDllSearchMode
EXPLAIN !!SafeDllSearchMode_Help
KEYNAME “System\CurrentControlSet\Control\Session Manager”
VALUENAME “SafeDllSearchMode”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!SafeProcessSearchMode
EXPLAIN !!SafeProcessSearchMode_Help
KEYNAME “System\CurrentControlSet\Control\Session Manager”
VALUENAME “SafeProcessSearchMode”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

END CATEGORY

END CATEGORY

;
; User settings
;
CLASS USER

CATEGORY !!Optimization

CATEGORY !!ExplorerSMB

POLICY !!NoRemoteRecursiveEvents
EXPLAIN !!NoRemoteRecursiveEvents_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoRemoteRecursiveEvents”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!NoRemoteChangeNotify
EXPLAIN !!NoRemoteChangeNotify_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoRemoteChangeNotify”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!StartRunNoHOMEPATH
EXPLAIN !!StartRunNoHOMEPATH_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “StartRunNoHOMEPATH”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

POLICY !!NoDetailsThumbnailOnNetwork
EXPLAIN !!NoDetailsThumbnailOnNetwork_Help
KEYNAME “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer”
VALUENAME “NoDetailsThumbnailOnNetwork”
VALUEON NUMERIC 1
VALUEOFF NUMERIC 0
END POLICY

END CATEGORY

END CATEGORY

[strings]

Optimization=”Optimization”
ExplorerSMB=”Explorer Network Performance”

UseDesktopIniCache=”Cache Desktop.ini”
UseDesktopIniCache_Help=”http://support.microsoft.com/kb/840309/EN-US”

NoRemoteRecursiveEvents=”Disable Remote Recursive Events”
NoRemoteRecursiveEvents_Help=”http://support.microsoft.com/?scid=kb%3Ben-us%3B330929&x=9&y=10″

NoRemoteChangeNotify=”Turn Off Directory Notification SMB Requests”
NoRemoteChangeNotify_Help=”http://support.microsoft.com/?scid=kb%3Ben-us%3B812669&x=14&y=12″

StartRunNoHOMEPATH=”Do Not Search Home Folder First When a Program is Started From Start -> Run”
StartRunNoHOMEPATH_Help=”http://support.microsoft.com/?scid=kb%3Ben-us%3B264061&x=18&y=9″

NoDetailsThumbnailOnNetwork=”Do Not Extract Details Thumbnails from Files Over the Network”
NoDetailsThumbnailOnNetwork_Help=”http://support.microsoft.com/?scid=kb%3Ben-us%3B830903&x=17&y=18″

SuppressionPolicy=”Do Not Obtain Detailed File Information When Opening a File”
SuppressionPolicy_Help=”http://support.microsoft.com/kb/829700/EN-US”

InfoCacheLevel=”Enable Caching of Path Information for all Files”
InfoCacheLevel_Help=”http://support.microsoft.com/kb/834350/EN-US”

SafeDllSearchMode=”Do Not Search for DLLs in Home Folder First (W2k)”
SafeDllSearchMode_Help=”http://support.microsoft.com/kb/306850/EN-US”

SafeProcessSearchMode=”Do Not Search for DLLs in Home Folder First (XP and W2k3)”
SafeProcessSearchMode_Help=”http://support.microsoft.com/?scid=kb%3Ben-us%3B905890&x=13&y=9″