为什么我需要管理员来阅读.NET CLR内存性能计数器

我无法以编程方式(在c#中)找到“.NET CLR Memory”计数器类别,就像在这个问题中一样。 以管理员身份运行解决了问题。

但为什么我需要这样做呢? 还有其他选择吗? 我想要只读访问,在我的应用程序中查看GC生成集合以进行性能分析。 最好不必使用管理员权限运行应用程序。

编辑:

  • 我可以在性能监视器工具中看到内存性能计数器,而无需以管理员身份运行
  • 如果不以Admin身份运行,我可以通过编程方式获得缩短(但不是空)的性能计数器类别列表,但这不包括我感兴趣的那个。
  • 我们的公司设置有点疯狂:我有管理员权限,但我不是本地管理员组的成员。 我确实有权添加自己,但每30分钟左右一些自动化过程会删除我。 不知道这是否会影响任何事情
  • 将自己添加到性能监视器用户组没有任何效果(除非我需要先重启)

您只需要在组性能监视器用户中 。 只需将非管理员用户添加到该组即可解决问题。

性能计数器存在安全隐患。 常见的攻击技术之一是观察安全代码的执行。 这种代码中一个非常常见的错误是它没有持续的执行时间,例如在密码无效时采取不适当的快捷方式。 这可以大大减少暴力攻击企图的次数。

从本质上讲,您肯定希望绕过公司的安全政策。 警惕不信任系统管理员,他们倾向于认真对待,并会毫不犹豫地举报违规行为。 当然最好与其中一个人交谈,而不是试图破解它。 您可以使用SysInternals的Process Explorer查看Perfmon.exe的安全需求。 我看到对内置“性能日志用户”组的强制要求,听起来很相关。