删除 Windows 性能计数器类别

2023-12-21

我有一个自定义性能计数器类别。 Visual Studio Server Explorer 拒绝删除它,声称它“未注册或属于系统类别”。如果不以编程方式执行此操作,如何删除该类别?有我可以删除的注册表项吗?


据我所知,有没办法安全地删除它们,除非以编程方式(它们旨在供应用程序在安装过程中创建和删除),但从电源外壳 http://Microsoft.com/PowerShell命令行控制台。只需运行这个命令:

[Diagnostics.PerformanceCounterCategory]::Delete( "Your Category Name" )

但是:(编辑)

You can删除创建的注册表项,这将使该类别消失。

对于名为“库存”的类别,您可以删除整个键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Inventory...虽然我不愿意打赌它会清理一切, it will使类别消失。 (如果你跑过程监控器 http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx运行Delete()方法时,您可以看到发生了很多其他活动,并且似乎没有任何其他活动changes made).

重要的是要注意正如我最初所说:当您从 Visual Studio 收到该错误时,可能是它已被删除,您需要刷新 VS 中的视图。在我的测试中,我必须重新启动应用程序才能让它们真正获得可用类别的干净列表。

您可以从 PowerShell 检查类别的完整列表,看看它是否已列出:

[Diagnostics.PerformanceCounterCategory]::GetCategories() | Format-Table -auto

但是,如果您检查它们,然后删除注册表项...它们仍然会显示,直到您重新启动 PowerShell(如果您启动另一个实例,您可以在那里运行相同的查询,并且它不会显示已删除的项目,但在第一个中重新运行 GetCategories 将继续显示它。

顺便说一句,如果您想对模式使用 -like 或对完整正则表达式使用 -match ,您可以过滤该列表:

[Diagnostics.PerformanceCounterCategory]::GetCategories() | Where {$_.CategoryName -like "*network*" } | Format-Table -auto
[Diagnostics.PerformanceCounterCategory]::GetCategories() | Where {$_.CategoryName -match "^SQL.*Stat.*" } | Format-Table -auto
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 Windows 性能计数器类别 的相关文章

随机推荐