首页 > 解决方案 > 将数组对象附加到powershell中的数组对象

问题描述

我正在构建一个用于监视单个进程的内存和 cpu 使用情况的 powershell 工具。我使用以下两行获得所需的信息:

$CPUSamples = (Get-Counter "\Process($ProcessName*)\% Processor Time").CounterSamples
$MEMSamples = Get-Process $ProcessName | Measure-Object Workingset -sum -average

$CPUSamples |Select-Object * 给出以下输出:

Path             : \\nibblerone\process(xmrig)\% processor time
InstanceName     : xmrig
CookedValue      : 2265,34873231763
RawValue         : 20688761250000
SecondValue      : 132626097939965662
MultipleCount    : 1
CounterType      : Timer100Ns
Timestamp        : 2021-04-11 12:16:33
Timestamp100NSec : 132626169939960000
Status           : 0
DefaultScale     : 0
TimeBase         : 10000000

$MEMSamples 给出以下输出:

Count    : 1
Average  : 19464192
Sum      : 19464192
Maximum  :
Minimum  :
Property : WorkingSet

我想使用以下方法将两者组合在一个数组中:

$Samples +=$CPUSamples | Select-Object *
$Samples += $MEMSamples

这样我就可以使用类似于以下行的内容将我想要的数据放入表中。

$Samples| Select-Object InstanceName, @{Name="CPU %";Expression={[Decimal]::Round(($_.CookedValue / $CpuCores), 2)}},Count, @{Name="SumMB";Expression = {[math]::round($_.Sum/1MB,2)}}

输出如下:

InstanceName CPU % Count SumMB
------------ ----- ----- -----
xmrig        96,23           0
                 0 1     18,57

我想我没有正确附加两个数组,因此我得到了两行。我想要的输出如下:

InstanceName CPU % Count SumMB
------------ ----- ----- -----
xmrig        96,23    1  18,57

有什么想法可以解决这个问题吗?任何帮助深表感谢!

标签: arrayspowershell

解决方案


推荐阅读