在 PowerShell 中向 WMI 发送 Refresh()

Posted

技术标签:

【中文标题】在 PowerShell 中向 WMI 发送 Refresh()【英文标题】:Sending a Refresh() to WMI in PowerShell 【发布时间】:2010-03-08 07:50:40 【问题描述】:

在 PowerShell 脚本中,我尝试使用以下命令获取每秒的页面错误数:

(Get-WmiObject Win32_PerfFormattedData_PerfOS_memory).PageFaultsPersec

不幸的是,它总是读取相同的值,因为我没有 Refresh() 性能计数器。

如何通过 PowerShell 向性能数据发送 Refresh() 方法?

【问题讨论】:

【参考方案1】:

您可以使用性能计数器获取值:

Get-Counter '\Memory\Page Faults/sec'

但是,如果我在循环中调用您的代码,它可以正常工作(尽管最好先存储 wmi 对象)。

1..10 | %  sleep -sec 2; (Get-WmiObject Win32_PerfFormattedData_PerfOS_memory).PageFaultsPersec 

【讨论】:

很高兴为您提供帮助。我见过很多人尝试刷新 wmi 性能计数器,但没有人成功:|

以上是关于在 PowerShell 中向 WMI 发送 Refresh()的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL/WMI/PowerShell结合篇SQL Server镜像状态变化实时告警

MSSQL/WMI/PowerShell结合篇简介

powershell Powershell WMI Explorer程序

powershell 使用PowerShell语法查询WMI

powershell PowerShell:将WMI日期/时间转换为DateTime

如何在没有 WMI 的情况下使用 PowerShell 获取总物理内存大小?