【问题标题】:What is the difference between Get-WmiObject and Get-Counter in PowershellPowershell中Get-WmiObject和Get-Counter有什么区别
【发布时间】:2012-05-30 20:39:49
【问题描述】:

我正在尝试学习如何进行一些简单的 Windows Server 性能监控。根据我的阅读,似乎有两种方法可以在 Powershell 中获取此信息:Get-WmiObjectsGet-Counter

Get-WmiObjectsGet-Counter 有什么区别?我是否有理由要使用其中一个?会不会是这两种方法是从同一个数据源读取的,但是却以不同的方式格式化它们的结果?

谢谢

【问题讨论】:

    标签: performance powershell windows-server-2008


    【解决方案1】:

    据我所知,它们之间没有区别。性能计数器都在 WMI 中注册,因此 Get-Counter cmdlet 将隐式使用 WMI 来获取其数据。

    一般来说,我会推荐使用 Get-WmiObject,因为它是一个更广泛的接口,并且熟悉这个更广泛的接口对您很有价值。

    请记住,并非 PowerShell 中的所有 cmdlet 都是学习和理解的必要条件。有很多命令我根本不使用,因为我不需要它们的功能。 Set-WmiInstance 是一个完美的例子——为什么要使用它,当我可以使用 Get-WmiObject 来抓取一个对象、更改它并在它上面调用 Put() 时?再说一次,我更喜欢将事物视为 .NET 对象,而不是使用 cmdlet(通常)。

    【讨论】:

    • 谢谢特雷弗。我假设您正在谈论更广泛的界面,例如 WQL?此外,Get-Counter 还有一个很好的合作伙伴命令,称为 Export-Counter,然后可以将其作为图形加载到 Perfmon 中。直接 WMI 查询有类似的东西吗?
    • 马克,我的意思基本上是您可以使用 Get-WmiObject 而不是 Get-Counter 获得更多信息——它是一个更通用的接口。至于您的第二个问题,Export-Counter 使用 [PerformanceCounterSampleSet] 类型的输入,这是由 Get-Counter cmdlet 创建的自定义对象。您也许可以使用自己的函数与 Get-WmiObject 一起构造相同的对象类型,但我推测仅使用 Get-Counter 会更容易。
    • Get-Counter 测量值位于 root\cimv2 WMI 命名空间中,命名约定为 Win32_PerfFormattedData_*
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 2021-05-10
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多