【问题标题】:Getting RAM info - Powershell获取 RAM 信息 - Powershell
【发布时间】:2016-06-10 20:33:13
【问题描述】:
我有一个需要获取物理内存和可用内存插槽数量的 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) 我如何添加可用的总内存插槽?
谢谢!
【问题讨论】:
标签:
powershell
export-to-csv
get-wmiobject
【解决方案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
【解决方案2】:
你可以试试这样的:
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'