在 Windows 上读取性能数据计数器是不是需要任何特殊的安全权限?

Posted

技术标签:

【中文标题】在 Windows 上读取性能数据计数器是不是需要任何特殊的安全权限?【英文标题】:Are any special security rights required to read performance data counters on Windows?在 Windows 上读取性能数据计数器是否需要任何特殊的安全权限? 【发布时间】:2015-03-02 19:02:33 【问题描述】:

我正在努力将 Windows 应用程序从始终以 SYSTEM 帐户运行迁移到作为受限用户帐户运行。此应用程序所做的许多事情之一是查询 Windows Performance Counters 以记录整个系统内存和 CPU 使用情况。 MSDN 的list of Privilege Constants 含糊不清,但SE_PROF_SINGLE_PROCESS_NAMESE_SYSTEM_PROFILE_NAME 让我觉得可能需要这种操作。但是,MSDN 对 PdhOpenQueryPdhAddCounterPdhCollectQueryData 等函数的文档没有提及任何必需的权限。

鉴于此,查询性能数据计数器是否需要任何权限?或者,SE_PROF_SINGLE_PROCESS_NAMESE_SYSTEM_PROFILE_NAME 权限具体授予哪些访问权限?

【问题讨论】:

为什么不试试呢? 部分原因是我不相信我的机器可以像其他所有机器一样工作(尤其是 Windows XP Embedded 和其他更奇特的变体),特别是因为我的机器是公司的成员Windows 域。我希望我可以从我之前的其他人的经验中学习。也许我错过了 MSDN 中更详细的页面。 您需要成为 Performance Monitor Users 组的成员才能读取性能计数器,但我不确定这包括哪些权限。 【参考方案1】:

“关于性能计数器”here 的描述中提到了所需的权限:

只有计算机管理员或性能日志用户组中的用户才能记录和查看计数器数据。只有当他们用于记录和查看计数器数据的工具从以管理员身份运行...打开的命令提示符窗口启动时,管理员组中的用户才能记录和查看计数器数据。性能监控用户组中的用户可以查看计数器数据。

Windows XP:管理员或管理员组中的用户可以不受限制地记录和查看计数器数据。

【讨论】:

对于其他调查此问题的人,这篇博文也可能会有所帮助:blogs.msdn.com/b/bclteam/archive/2006/09/08/746900.aspx。

以上是关于在 Windows 上读取性能数据计数器是不是需要任何特殊的安全权限?的主要内容,如果未能解决你的问题,请参考以下文章

我可以从 Windows 中的用户模式程序中读取 CPU 性能计数器吗?

C# 不提供 Windows 性能计数器(在 Azure 辅助角色上)

Windows 性能监视器API

Windows 性能监视器API

Windows 性能监视器API

Windows 性能监视器API