Terminal Services Manager uses WTS API, but utilizes Perfmon counters for monitoring CPU usage and Available Memory. If you have empty value for CPU usage and Available Memory, but the rest of your data is stable, then it is likely there is an issue with Perfmon on the monitored server.

To troubleshoot this issue:
-
Click on the Start Menu and click Run...
-
Type perfmon into the Run command prompt and click OK.

- You will then see the Performance Monitor pop up.

- Click on the green ' +' sign near the top of the Performance Monitor Window to bring up the Add Counters window.

- Specify the UNC path of your remote machine. When you are finished adding the path, Perfmon will pause while it automatically attempts to make a connection.

-
If the connection is successful, you should be returned with a listing of all of the available Perfmon performance counters for your remote machine.
-
If the connection fails, please attempt the same procedure from the local machine to itself, and from the remote host to itself, to isolate the issue down to the remote host or the local machine.
If you are unable to make a connection using the perfmon.exe utility on your local machine to your remote host, Terminal Services Manager will be unable to do so as well. This indicates an issue not with Terminal Services Manager, but with your Windows configuration or authentication.
Resolution
Many errors are permissions related. The log in is valid however it does not have access rights to read the Performance counters. Performance monitoring can be restricted by a lack of Local Administrator credentials, registry permissions problems, Local Policies, or Group Policies in Active Directory.
Account Rights
Because Perfmon accesses performance counters from remote hosts, Terminal Services Manager will need to be running under a user that has Local Administrative rights on the remote host that you are attempting to monitor.
Ensure the account or group that you are logging into, like a "Domain Admin", is actually in the local "Administrators" security group.
Services
If you cannot get a connection established via the Perfmon utility, the issue may be that certain services need to be running on the host being monitored for Perfmon to respond to RPC queries.
The following services must set to an Automatic startup type:
- Remote Procedure Call (RPC)
- Remote Registry
In addition, the following services must set to Manual or greater startup type:
- WMI Performance Adapter
- Performance Counter DLL Host
- Performance Logs and Alerts
- Remote Procedure Call (RPC) Locator
Ports
Perfmon relies on inbound RPC port 135 TCP and Windows SMB port 445 TCP on the host. When troubleshooting Perfmon connectivity issues, please ensure that these ports are unrestricted in your firewall configuration.
Fix "Performance Counters Not Started" and "Property Value Conflict"
Empty counters can also mean the performance counter registry on the monitored machine is corrupt or switched off, rather than Terminal Services Manager or Perfmon being blocked. Two symptoms point to this:
- Performance counters not started (sometimes shown as "online - performance counters not started"): the counter set failed to load.
- Property value conflict: appears when you run a System Diagnostics report in Resource and Performance Monitor, or when you add a counter.
Both have the same root cause: a corrupt or disabled counter library. Here is how to rebuild it.
Check That the Counters Are Not Disabled
For each service you want to read, open this registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service>\Performance
(for example PerfOS, PerfDisk, or PerfProc). A "Disable Performance Counters" value other than 0 turns the counter off: 1 disables it, 2 disables the 32-bit counter, and 4 disables the 64-bit counter. Set it back to 0.
Rebuild the Counter Library
Open an elevated Command Prompt and run these commands, pressing Enter after each line:
cd c:\windows\system32
lodctr /R
cd c:\windows\syswow64
lodctr /R
Then resync the counters with WMI:
winmgmt.exe /resyncperf
If lodctr returns error code 2, run it again. Restart the "Performance Logs & Alerts" and "Windows Management Instrumentation" services, or reboot the server, so the changes take effect.
If some counters are still missing, check that c:\windows\system32\PerfStringBackup.INI looks complete. You can copy that file from an identical machine to restore the strings, but back up the original first.
Reconnect with Terminal Services Manager
Once perfmon.exe reads the remote machine cleanly, Terminal Services Manager will show CPU and memory again. Rebuilding the counters fixes the machine itself, so Perfmon and Terminal Services Manager both read them correctly afterward.

