Want to monitor RDP bandwidth by user on Windows Server 2012? You’re out of luck…

One of the neatest things our Remote Desktop Reporter tool can report on is total RDP Bandwidth consumed in each user session.  Historically, Microsoft has made this data accessible in their operating systems one of two ways:

  1. Through queryable Performance Counters associated with a particular user session
  2. Through the underlying Terminal Services API, also queryable by individual user session

As a result, we gather this information routinely for storage in Remote Desktop Reporter’s database and offer a few out of the box reports to break it down for system administrators.  We also use it in our freeware RDP Bandwidth Monitor Tool, which is part of our complimentary Remote Desktop Admin Toolkit.

You can imagine our surprise when we discovered that these metrics are flat out gone in Windows Server 2012.  Gone, you say?  Yes, entirely.

Terminal Services Session Counters in Windows Server 2008

Let’s first look at the Terminal Services Session counters in Windows Server 2008:

Screenshot from Windows Server 2008
“Add Counters” in Windows Server 2008.

As you can see, we can get RDP Bandwidth oriented information, such as the input/output bytes of a particular RDS Session, with both the compressed and non-compressed variants available.

But, Look at Terminal Server Session Counters on Windows Server 2012 . . .

Now, let’s look at the Terminal Server Session counters from a Windows Server 2012 box:

"Add Counters" screenshot from Windows Server 2012
“Add Counters” in Windows Server 2012.
"Add Counters" screenshot from Windows Server 2012
And something seems to be missing from Windows Server 2012 . . .

The very same RDP Bandwidth counters that were present in Windows Server 2008, and many previous versions, are now gone.

What About the Terminal Services API?

Certainly we can get this sort of information from those functions, right?  Nope.  Calling the appropriate function to obtain these metrics results in the function returning successfully, but with all of these counter values now zeroed out.

It’s like Microsoft literally removed a significant chunk of Performance Counter plumbing out of the RDS subsystem in Windows Server 2012.  We’ve tested both Windows Server 2012 and Windows Server 2012 R2, with exactly the same results.

We have a support ticket open with Microsoft, and the only information we’ve received to date is that “they have researched this and unfortunately the values are no longer supported.  The documentation will be updated accordingly.”

What About an Upcoming Windows Service Pack?

Currently we are requesting possible workarounds from Microsoft to get at this type of information in Windows Server 2012, and/or a possible commitment to add those counters back in an upcoming Service Pack.  We’ll update you with anything we hear in a subsequent blog post.

In the meantime, great RDS community, what’s your theory as to why these counters are missing?  Did the “plumbing changes” to RDS to add/expand RemoteFX in Windows Server 2012 cause the removal of these counters?  Was it a simple development oversight that slipped through QA?

Weigh in with your theories below or tweet us @RDPSoft.

Leave a Reply

Your email address will not be published. Required fields are marked *