ZadeyTech (Penny),
While it's unfortunate that SP2 didn't provide a quick fix to your problem, it sounds like you got a much better grasp of the issue and are closer to a workable solution.
Your user's TS (Terminal Services) sessions are clearly NOT being closed in a clean an orderly manner. In a perfect world, all users would have the sense to exit any/all running applications, make sure there are no active print jobs in their queue and perform a "Logoff". Instead, for a variety of reasons - sessions are being "disconnected", which by default leaves the users TS session running on the server. There IS value in the ability to "disconnect" in some settings. If configured properly, the user can reconnect to their “disconnected” session on the server, leaving them where they left off. In an environment with MANY users, this is probably not wise considering the load and resources placed on the server with too many sessions running all at once. That said - the best practice would be to have users exit all applications and "logoff" of their session. Doing so should cleanly remote the running session from the Server, releasing memory and processor bandwidth for the next user(s).
The TS Configuration Time-out settings might be an issue as well. Ending a disconnected session forcefully removes the running session from the server. If that session has running applications (your accounting program) or active mappings to drives/printers - these connections/programs are forcefully terminated - which is problematic as connections to database servers, application settings and other connected resources are not properly closed. Each session is basically a virtual copy of windows running on the server. Forcibly terminating the session is comparable to yanking the power cord from a Windows PC where a user is logged in and running applications. Not a good idea! Timeout settings could have the undesired effect of corrupting user application data, connections and settings because they can either “disconnect” active sessions then eventually forcefully TERMINATE these sessions.
In a NON-DOMAIN environment, you're limited in the restrictions and timeout options you can configure. I don't believe the NON-DOMAIN Terminal Services controls allow you to force a session "logoff"In a DOMAIN (Active Directory) environment, you can impose very specific policies on users, groups and machines which are members of the domain. One approach in this environment would be to impose a policy that would eliminate the "disconnect" option from the Remote Desktop client. You can also force automatic logoff in the domain users TS settings. I'm not saying that having a DOMAIN structure is the answer to all of your problems - just that it would give you FAR more flexibility and control over what your users can and cannot do.
The ideal solution in your environment would to find a way to configure terminal services to run a "logoff" script when a session is "disconnected”. This would cleanly close all running applications, mappings, etc, logoff the user and remove the session from the server.
Question - have you restricted each user to ONE Terminal services session? See:
http://support.microsoft.com/?kbid=302883
If users are allowed to open multiple, simultaneous sessions under the same account, this can quickly eat up resources on the server - especially if they're NOT logging off properly.
Another random thought is that in the absence of a DOMAIN, you might be able to make policy/configurations on the end-user's PCs to impose "disconnect" restrictions in their Remote Desktop Client.
Another solution I've seen discussed out there is installing a special screen saver, which after inactivity, performs a LOGOFF from the TS session. Such a screensaver would have to be installed and configured on the user's TS profile - NOT on their local PC.
I know this is a lot of information to throw at you. I realize that if the lack of user compliance is the sole cause of this problem, solving it is going to involve some creative, automated solution which forces or automatically executes compliance. I'm still not ruling out some TS server setting or software issue as playing a part in this problem. I'm also concerned that those mapped PRN connections as well as having your account program running and logged to sessions which are being forcefully terminate might be further mucking up this issue. I also don't believe that switching over to a Domain environment, a rather involved, complicated and costly process - is the end-all be-all solution to your problems.
I think that with a lot of research along, step-by-step documented changes and troubleshooting are going to eventually bring about a more stable and workable solution to your TS woes. In a production environment like yours, this is not easy considering the end-users ongoing need to have access to your server. There's a lot of good information and advice out there - but don't consider ANY of this advice as Gospel. Microsoft is probably the most reliable source of information. Solutions and advice found on open user forums should be taken for what it's worth. Avoid purchasing, downloading or installing ANY third-party utilities, scripts or programs that offer a solution without careful research as to the legitimacy of the author/vendor, feedback from others who have used such a solution, a thorough virus scan of the download and a known way of backing up such a solution if it doesn't work - this advice is exponentially important when you're dealing with a mission critical application server. ALWAYS perform FULL backups of your server before making any major changes!
This is probably a redundant question - but are your users on a LAN environment connected directly to your Server? Is there any remote access available to your users? How many users are configured on your server. On average, how many simultaneous TS sessions do you have running on your server? What is the make/model of your server and how much memory is installed? You said that your server is hosted by a third-party company located elsewhere. How are your clients connected to your server? What kind of bandwidth do you have available from this offsite hosting company?
Again - WAY too many questions - but knowing more about the server platform and networking configuration might shed light on potential issues that I've not considered.
The following are links to tech-notes, discussions, etc which are relevant to your TS issue(s)
You may have to scroll through some of these pages to get to the relevant content.:
http://ts.veranoest.net/ts_faq_configurati…#KillDisconnect
http://technet2.microsoft.com/windowsserve…3.mspx?mfr=true
http://www.neowin.net/forum/index.php?showtopic=520738
http://www.hostmysite.com/support/dedicated/general/timeTS/
Write back and let me know if anything has changed and if my rather unorganized and overloaded post has provided any addition insight or ideas.
John