获取内存信息 - Powershell



我有一个PC列表,我需要获取物理内存和可用的内存插槽数量。 我在文本文件中有一个电脑列表,并且我正在使用"获取内容"cmdlet。 这是我所拥有的:

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

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

1)如何让PC名称显示在相应的号码旁边?

2) 如何添加可用的总内存插槽?

谢谢!

设备定位器会告诉您插槽。

$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

你可以尝试这样的事情:

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'

相关内容