如何同时运行两个Powershell WMI查询?

时间:2014-06-20 03:39:14

标签: powershell foreach wmi-query

我想同时运行两个命令。目前我面临着串行运行命令的问题,因为perfmon数据与统计数据不匹配。

以下是这个想法。

  • 我正在运行wmi_processes以从命令行获取名称。由于我们在命令中有应用程序名称,因此这是了解名称和IDprocess的唯一方法。

  • 然后我查询格式化的perfmon数据以获得CPU使用率。但是在这方面存在延迟,而且大部分时间我都会错过细节。

那么我有什么方法可以同时触发这两个查询并仅使用数据集?

欢迎任何其他想法获得相同的解决方案。谢谢你的帮助。

更新: 我试图让进程ID匹配,但是当我在下面的foreach循环中搜索时,执行可能已经结束。所以我希望他们立刻被执行。这是我的代码

$rec=Get-WmiObject -Query "select     CommandLine,CreationDate,Handle,HandleCount,Name,ProcessId,VirtualSize,WorkingSetSize from Win32_Process where commandline like 'Dtexec%'"
foreach ($P in $rec)
{
    $PsId=$P.ProcessId
    $FormattedData=Get-WmiObject -Query "select         ElapsedTime,IDProcess,PercentProcessorTime,PercentUserTime,PercentPrivilegedTime,IOReadByte    sPerSec,IOWriteBytesPerSec,PrivateBytes,WorkingSet from         Win32_PerfFormattedData_PerfProc_Process where IDProcess='$Psid'"
$Usage=$P.CreationDate+","+$PsId+","+$P.Handle+","+$P.HandleCount+","+$P.VirtualSiz    e+","+$FormattedData.IDProcess+","+$FormattedData.PercentProcessorTime+","+$FormattedData.E    lapsedTime+","+$FormattedData.PercentUserTime+","+$FormattedData.PercentPrivilegedTime+","+    $FormattedData.IOReadBytesPerSec+","+$FormattedData.IOWriteBytesPerSec+","+$FormattedData.P    rivateBytes+","+$FormattedData.WorkingSet+","+$P.CommandLine
    $Usage
}

那我该怎么做呢?

0 个答案:

没有答案