2012-05-30 120 views
1

我在学习如何做一些简单的Windows Server性能监控。从我读过的内容看,有两种方法可以在Powershell中获取此信息:Get-WmiObjectsGet-CounterGet-WmiObject和Get-Counter在Powershell之间有什么区别

Get-WmiObjectsGet-Counter有什么区别?是否有一个原因,我想使用一个在另一个?难道这两种方法都是从相同的数据源读取的,但是以不同的方式格式化其结果?

谢谢

回答

1

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

一般来说,我会建议使用Get-WmiObject,因为它是一个更广阔的界面,并且熟悉那个更广阔的界面对你来说很有价值。

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

+0

谢谢Trevor。我认为你正在谈论WQL这样的更广泛的界面?此外,Get-Counter还有一个很好的合作伙伴命令,称为Export-Counter,然后可以将它作为图形加载到Perfmon中。有没有类似的WMI查询? –

+0

Mark,我的意思是基本上你可以使用Get-WmiObject而不是Get-Counter获得更多的信息 - 它是一个更通用的接口。至于第二个问题,Export-Counter使用[PerformanceCounterSampleSet]类型的输入,该类型是由Get-Counter cmdlet创建的自定义对象。您可以使用您自己的函数与Get-WmiObject一起构造相同的对象类型,但我推测使用Get-Counter会更容易。 –

+0

Get-Counter度量值位于root \ cimv2 WMI命名空间中,命名约定为Win32_PerfFormattedData_ * –

相关问题