Arrays 将阵列对象附加到powershell中的阵列对象

Arrays 将阵列对象附加到powershell中的阵列对象,arrays,powershell,Arrays,Powershell,我正在构建一个powershell工具,用于监视单个进程的内存和cpu使用情况。我通过以下两行获得所需信息: $CPUSamples = (Get-Counter "\Process($ProcessName*)\% Processor Time").CounterSamples $MEMSamples = Get-Process $ProcessName | Measure-Object Workingset -sum -average $CPUSamples | Sel

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

$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
Count    : 1
Average  : 19464192
Sum      : 19464192
Maximum  :
Minimum  :
Property : WorkingSet
$MEMSamples提供以下输出:

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
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
我猜我没有正确地附加这两个数组,因此我得到了两行。 我期望的输出如下:

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

有没有办法解决这个问题?非常感谢您的帮助

您搜索的过程是否只有一个实例?如果没有,您是否可以合并每个进程的度量值,或者每个进程需要单独的度量值?您如何组合$CPUSamples和$MEMSamples?将两者组合在一个数组中-看起来您将数组与对象混淆了,这使得这个问题很难理解。根据所需的输出和您希望能够执行的代码示例,您希望在一个新对象中合并两个对象$CPUSamples和$MEMSamples的属性?合并对象数组通常通过for循环完成,使用迭代对象数最多的数组。在循环中,您可以使用pscustomobject组合这两个对象