2016-06-10 3 views
1

물리적 메모리와 사용 가능한 메모리 슬롯의 크기를 얻는 데 필요한 PC 목록이 있습니다. PC의 목록이 텍스트 파일에 있고 "get-content"cmdlet을 사용하고 있습니다. 이것은 내가 가지고있는 것입니다 :RAM 정보 얻기 - Powershell

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

실행하면 총 메모리 만 표시됩니다. 내 2 가지 질문은 다음과 같습니다.

1) PC 이름을 어떻게 해당 번호 옆에 표시 할 수 있습니까?

2)이이 사용할 수있는 총 메모리 슬롯을 추가 할 수 있습니까?

감사합니다!

+0

당신은 더 나은'대신 WMI''의 CIM' cmdlet을 사용하십시오. – bahrep

답변

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 
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'