Now having had two clients with a related system process problem, I am documenting what I’ve discovered and the needed tweak to fix it. Both of these small businesses are heavily using Remote Desktop Services aka Terminal Server. One with SBS 2011 and Windows 2008 R2 on the member server (both virtualized on Hyper-V); the other uses SBS 2008 with Windows 2008 on its member server. The first biz uses 98% of its connections as thin clients and has seen huge amounts of memory (commit size) set aside for instances of ‘splwow64.exe’. The second client experienced an issue with Windows 2000 clients (yes they are still out there …yikes!) not automatically ending their session when they closed the Environment Tab specified application that their TS session is limited to running/displaying – just got the blue logoff screen in a hung stasis.
On the first I tried changing the configuration of the main shared printer. The printer is which I determined was where all the SPLwow64.exe related print tasks were being sent. First I disabled spooling and secondly I unchecked the box to render print jobs on client (in this case the RDS server). Neither satisfied the desired memory release I wanted to see achieved. I could confirm the correlation with the SPLwow64.exe process and actual memory consumed via the Hyper-V Manager console which showed the dynamic memory demand of this RDS machine. When the topmost listed instances of the SPLwow64.exe process were ‘ended’ the overall memory dropped equally dramatically. This server which typically needed roughly 4 GB of running memory was underperforming when maxing out at 10 GB that were dynamically being made available to it.
The link below states in the first post that you can adjust the time this process takes to release its memory and links to a dead KB article.
That applicable control registry key is:
The second client’s issue led me to find the following thread and and in the last post the solution. It’s a simple technique that can be applied if you want to turn off the use of system processes, SYSwow64.exe in this case, for a Terminal Server.
Add a REG_DWORD called "splwow64.exe" set the value to 0
**Here’s another related conversation thread by an application developer found in the private Microsoft Forums