Arrays 将阵列对象附加到powershell中的阵列对象
我正在构建一个powershell工具,用于监视单个进程的内存和cpu使用情况。我通过以下两行获得所需信息: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
$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组合这两个对象