获取RAM信息-Powershell

获取RAM信息-Powershell,powershell,export-to-csv,get-wmiobject,Powershell,Export To Csv,Get Wmiobject,我有一个PC的列表,我需要获得物理内存和内存插槽的数量。我有一个文本文件中的PC列表,我正在使用“获取内容”cmdlet。这就是我所拥有的: Get-WmiObject -Class Win32_PhysicalMemory -ComputerName (Get-Content "C:\TextFile.txt") | ForEach-Object {[math]::truncate($_.capacity / 1GB)} 运行此操作时,只显示内存总量。我的两个问题是: 1) 如何让电脑名显示

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

Get-WmiObject -Class Win32_PhysicalMemory -ComputerName (Get-Content "C:\TextFile.txt") | ForEach-Object {[math]::truncate($_.capacity / 1GB)}
运行此操作时,只显示内存总量。我的两个问题是:

1) 如何让电脑名显示在相应的号码旁边

2) 如何将可用的总内存插槽也添加到该内存插槽中


谢谢大家!

DeviceLocator告诉您插槽的位置

例子
$memoryBySlot=Get-CimInstance-Class Win32_PhysicalMemory | Foreach对象{
[PSCustomObject]@{
CapacityGB=$\容量/1GB
DeviceLocator=$\设备定位器
ComputerName=$env:ComputerName
}
}
$memoryBySlot |输出字符串
$memoryBySlot |测量对象-属性容量GB-总和|选择计数、总和、属性
结果
您可以尝试类似的方法:

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'

您最好使用
CIM
cmdlet,而不是
WMI
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'