Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我需要是管理员才能读取.NET CLR内存性能计数器_C#_.net_Performancecounter - Fatal编程技术网

C# 为什么我需要是管理员才能读取.NET CLR内存性能计数器

C# 为什么我需要是管理员才能读取.NET CLR内存性能计数器,c#,.net,performancecounter,C#,.net,Performancecounter,我无法以编程方式(在c#中)找到“.NET CLR Memory”计数器类别,如前所述。以管理员身份运行解决了这个问题 但我为什么要这么做?还有别的选择吗?我想要只读访问,以查看我的应用程序内的GC生成集合,以便进行分析。最好不必使用管理员权限运行应用程序 编辑: 我可以在performance Monitor工具中看到内存性能计数器,而不用以管理员身份运行 如果不以管理员身份运行,我可以通过编程方式获得性能计数器类别的缩短列表(但不是空的),但这不包括我感兴趣的列表 我们的公司设置有点疯狂:

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

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

编辑:

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

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

性能计数器存在安全隐患。常见的攻击技术之一是观察安全代码的执行情况。这类代码中一个非常常见的错误是没有固定的执行时间,例如在密码无效时使用不适当的快捷方式。这可以大大减少暴力攻击尝试的次数


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

不幸的是,这没有效果。请注意,我可以在Windows附带的性能监视器工具上看到这些计数器。只是不在我的.Net应用程序中。我想你是对的。当我有时间的时候,我会研究如何将需求添加到我自己的应用程序中,但现在将自己添加到PerfMonUsers组就可以了。