NSClient - ERROR: Failed to get PDH value.

Errors:

  • NSClient - ERROR: Could not get data for 5 perhaps we dont collect data this far back?
  • NSClient - ERROR: Failed to get PDH value.





Solution:



The above errors indicate that there could be issue with performance
counters.Also below screenshoted error could be seen while running “perfmon” command.









CASE1:


Steps:
We have to rebuild Performance Counters with LODCTR from an elevated command prompt.




  1. Launch Command Prompt as Administrator (right click Runs As Administrator).



  2. Drop into the C:\WINDOWS\System32 directory by typing CD\ then CD Windows\System32



  3. To rebuild your resource counters type the following command:



 lodctr /r 
This will rebuild your counter values and may take a few moments so please be patient. 
  • If you wish to query the counters to make sure they were correctly set, use:
lodctr /q 
This will give you something like the following:  
       Performance Counter ID Queries [PERFLIB]:

Base Index: 0x00000737 (1847)

Last Counter Text ID: 0x000031D2 (12754)

Last Help Text ID: 0x000031D3 (12755)



[.NET CLR Data] Performance Counters (Enabled)

DLL Name: %systemroot%\system32\netfxperf.dll

Open Procedure: OpenPerformanceData

Collect Procedure: CollectPerformanceData

Close Procedure: ClosePerformanceData



[.NET CLR Networking] Performance Counters (Enabled)

DLL Name: %systemroot%\system32\netfxperf.dll

Open Procedure: OpenPerformanceData

Collect Procedure: CollectPerformanceData

Close Procedure: ClosePerformanceData
      
* Now reopen the Performance Monitor and check it. You will see that the error was fixed.

CASE2:

Once you query the counters to make sure they were correctly set, use:
lodctr /q 
You may see that performance counter is disabled.
[PerfOS] Performance Counters (Disabled)
DLL Name: %SystemRoot%\System32\perfos.dll
Open Procedure: OpenOSObject
Collect Procedure: CollectOSObjectData
Close Procedure: CloseOSObject
System, which have the so called performance counters/objects disabled - which blocks CPUMon from reading the cpu usage. you have to manually re-enable those counters, from within registry.
These are the changes that CPUMon will make to the registry:
HKLM\SYSTEM\CurrentControlSet\Services\PerfOS\Performance:Disable Performance Counters=0
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib:Disable Performance Counters=0

Post a Comment

Previous Post Next Post