1

我有一个需要获取物理内存和可用内存插槽数量的 PC 列表。我有一个文本文件中的 PC 列表,我正在使用“get-content”cmdlet。这就是我所拥有的:

Get-WmiObject -Class Win32_PhysicalMemory -ComputerName (Get-Content "C:\TextFile.txt") | ForEach-Object {[math]::truncate($_.capacity / 1GB)}

当我运行它时,只显示内存总数。我的两个问题是:

1)如何让PC名称显示在相应数字旁边?

2)我怎样才能添加可用的总内存插槽呢?

谢谢你!

4

2 回答 2

1

DeviceLocator 告诉您插槽。

例子

$memoryBySlot = Get-CimInstance -Class Win32_PhysicalMemory | Foreach-Object { 
    [PSCustomObject] @{
        CapacityGB = $_.Capacity /1GB
        DeviceLocator = $_.DeviceLocator
        ComputerName = $env:COMPUTERNAME
    }
}
$memoryBySlot | Out-String

$memoryBySlot | Measure-Object -Property CapacityGB -Sum | select count, sum, property

结果

CapacityGB DeviceLocator ComputerName
---------- ------------- ------------
        16 DIMM1         MYMACHINE
        16 DIMM2         MYMACHINE
        16 DIMM3         MYMACHINE
        16 DIMM4         MYMACHINE


Count Sum Property
----- --- --------
    4  64 CapacityGB
于 2016-06-10T21:16:50.763 回答
0

你可以尝试这样的事情:

Get-Content "C:\TextFile.txt" | % {$a = (Get-CimInstance -ClassName Win32_PhysicalMemory -ComputerName $_ | Measure-Object -Sum -Property Capacity).Sum / (1024*1024*1024); [PSCUStOMOBJECT]@{"Computer"=$_;"MEM"=$a}} |export-csv 'file.csv'
于 2016-06-10T21:26:59.847 回答