This seems completely reasonable. What is the best way to make sure the user that executes check_perfmon has permissions. I assumed the user executing that would be the same user the service is running as.
It looks like another post with exactly the same problem here:
I was able to replicate exactly what they were seeing.