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:
- UseDesktopIniCache (HKLM)
- NoRemoteRecursiveEvents (HKCU or HKLM)
- NoRemoteChangeNotify (HKCU or HKLM)
- StartRunNoHOMEPATH (HKCU)
- NoDetailsThumbnailOnNetwork (HKCU or HKLM)
And then there are the following machine-specific settings that need to be set outside the policies registry branch as a tattooing policy:
- InfoCacheLevel
- SuppressionPolicy (the KB article applies to all 3 and SCAPI->Flags)
- SafeDllSearchMode
- SafeProcessSearchMode
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"
10 Comments
Great work Helge.
There are two errors in your ADM template.
Between the Explain and ActionListOn keywords you need a Keyname reference, such as the one I’ve added below:
EXPLAIN !!SuppressionPolicy_Help
KEYNAME “SOFTWARE\Classes\*\shellex\PropertySheetHandlers”
ACTIONLISTON
The 2nd SafeProcessSearchMode reference under the strings section should be SafeProcessSearchMode_Help
Other than that it works a treat:)
Cheers,
Jeremy.
Thanks, Jermemy. You are right and I should have tested it better.
I corrected the ADM file in the post.
Helge
Really good and really interesting post. I expect (and other readers maybe :)) new useful posts from you!
Good luck and successes in blogging!
Dig the blog a LOT!
Nice style and I like the way you discuss the problems . I’m going to book mark it.
;)
Hello,
I tried to import the adm settings, but InfoCacheLevel and everything below are never visible in my GPO :(
It looks like the registry path is refused (if I copy & paste KEYNAME of UseDesktopIniCache the setting appear).
Have you got any idea ?
Thanks,
N
Nicolas,
in GPEdit.msc go to View -> Filter and uncheck “Only show managed policies”.
I hope this helps.
Great thanks ;)
Any idea of other settings for Vista ?
It’s amazing all the stuff exchanged between Vista and a domain server.
I have remote users connected via VPN, and the performances fall down due to validation of everything with the 2003 SP2 domain server. (even after sending the .REG mentionned on this page)
Regards,
N
Hi Helge,
As you mentioned recently on twitter when we discussed “best practices” it can become an excuse for thinking. It happened!
The UseDesktopIniCache should NOT always be set to 1, in some cases its better to set it to 0.,
I wrote an article about a 3 ~ 5 seconds delay when browing when using redirected My Documents on Windows Server 2003 (http://www.ingmarverheij.com/2012/07/delayed-browsing-5-sec-with-redirected-my-documents-on-windows-server-2003/). Setting UseDesktopIniCache to 0 solved the issue.
Cheers
Ingmar
Thanks for pointing that out, Ingmar. Never trust the internet ;-)