I’m working with a situation where all of the computers in a computer lab are actually zero-clients connecting to a dedicated Windows 7 VM on a server cluster.
This environment has its complexities, and I’m working to improve the performance.

That being said, I would get frequent notices from the Instructor that the computers would be running slow.

  • Rebooting the VMs would fix that, but it appeared that was just a Band-Aid.

I noticed that each VM would hold on to the disconnected RDP sessions and continue to consume resources in the background. Given that the Computer Lab terminals would RDP to a Windows 7 VM that was unshared, it was odd to me that more than one session would remain. I guess the users aren’t fully logging out of their sessions… This being a sensitive environment already, there were no resources to spare for these inactive sessions.

How do you terminate them automatically?

I started looking into a way to terminate the idle RDP sessions and found the perfect method through GPO. It has actually been around for years, but I can confirm it (still) functions in a Windows Server 2012 R2 environment with Windows 7 VMs.

 

Create the GPO:

In your group policy console, navigate to or create and link a policy that applies to your target computers (the hosts you would like to kill disconnected RDP sessions for)

Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits

Open Session Time Limits and enable the following policy:

  • Set time limit for disconnected sessions

Once enabled, you’re allowed to select from a drop-down after how long you would like to end a disconnected session.

Apply the changes and go ahead on to test, or force group policy updates to those hosts.


 

How do I know it works?

I set the time to 1 minute and applied the GPO to a test VM.

I logged into this VM three times remotely and once from the console.

 

I decided to close the first of three RDP sessions, without logging off. Here it shows disconnected:

After a minute, to my delight, the session was gone!

 

So, I disconnected the other two sessions :

and confirmed they were terminated automatically as well:

As Apache would say:

 

It works!

 

After testing:

I chose to set the interval to 30 minutes:

I forced a group policy update on all of the VMs.

Now we won’t see masses of idle disconnected sessions consuming resources on our server cluster.

 


Note:

This will not work for physical/console sessions, only sessions over RDP. This is functional in the example environment because the only method for the user to access the workstation is via RDP protocol, and they mainly close their session without logging off.


Leave a Reply

Related Posts

Virtualization

Enable SSH login to vCenter 6.5 in WebUI

Enabling vCenter SSH access from Web User Interface 1. Log in to WebUI 2. On the vSphere Web Client Home page, click System Configuration. 3. Under System Configuration, click Nodes. 4. Under Nodes, select a Read more…

File Services

How to Enable Shadow Copies for a volume in Windows Server 2012 R2

Enable Shadow Copies (Enable Previous Versions) Click Start , point to Administrative Tools , and then click Computer Management .   In the console tree, right-click Shared Folders , click All Tasks , and then click Configure Shadow Copies .   The window that opens will look Read more…

File Services

How to use Robocopy to Preseed Files for DFS Replication

Use Robocopy to Preseed Files for DFS Replication I’ll write this here first, since it’s important: The folder in which you are robo-copying (ex c:\test) must not exist on the destination server (ex. f:\test). If you create Read more…

%d bloggers like this: