Windowsパソコンでネットワーク越しにパソコンのメモリ情報を得たい時に役立つ機能の紹介です。職場のパソコンのインベントリ情報を遠隔で収集したいときなどに活用します。
WMIを使うので以下サイトを参考にして、接続できるようにしておく必要があります。
実施方法
PowerShellで以下のコマンドを実行すると、$memories変数に取得した情報が格納されます。
1 |
$memories = Get-WmiObject Win32_PhysicalMemory -computername ホスト名orIP |
Select-Objectで内容を確認してみると、次のような情報が取得されます。この中でCapacityにメモリの容量が格納されているので参照します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
PS C:\> $memories | Select-Object * PSComputerName : PC001 __GENUS : 2 __CLASS : Win32_PhysicalMemory __SUPERCLASS : CIM_PhysicalMemory __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_PhysicalMemory.Tag="Physical Memory 0" __PROPERTY_COUNT : 36 __DERIVATION : {CIM_PhysicalMemory, CIM_Chip, CIM_PhysicalComponent, CIM_PhysicalElement...} __SERVER : PC001 __NAMESPACE : root\cimv2 __PATH : \\PC001\root\cimv2:Win32_PhysicalMemory.Tag="Physical Memory 0" Attributes : 2 BankLabel : BANK 0 Capacity : 4294967296 Caption : 物理メモリ ConfiguredClockSpeed : 1867 ConfiguredVoltage : 1200 CreationClassName : Win32_PhysicalMemory DataWidth : 64 Description : 物理メモリ DeviceLocator : ChannelA-DIMM0 FormFactor : 0 HotSwappable : InstallDate : InterleaveDataDepth : InterleavePosition : Manufacturer : SK Hynix MaxVoltage : 0 MemoryType : 0 MinVoltage : 0 Model : Name : 物理メモリ OtherIdentifyingInfo : PartNumber : H9CCMMMBJTALAR-NUD PositionInRow : PoweredOn : Removable : Replaceable : SerialNumber : 00000000 SKU : SMBIOSMemoryType : 29 Speed : 1867 Status : Tag : Physical Memory 0 TotalWidth : 64 TypeDetail : 16512 Version : Scope : System.Management.ManagementScope Path : \\PC001\root\cimv2:Win32_PhysicalMemory.Tag="Physical Memory 0" Options : System.Management.ObjectGetOptions ClassPath : \\PC001\root\cimv2:Win32_PhysicalMemory Properties : {Attributes, BankLabel, Capacity, Caption...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic, Locale, provider, UUID} Site : Container : PSComputerName : PC001 __GENUS : 2 __CLASS : Win32_PhysicalMemory __SUPERCLASS : CIM_PhysicalMemory __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_PhysicalMemory.Tag="Physical Memory 1" __PROPERTY_COUNT : 36 __DERIVATION : {CIM_PhysicalMemory, CIM_Chip, CIM_PhysicalComponent, CIM_PhysicalElement...} __SERVER : PC001 __NAMESPACE : root\cimv2 __PATH : \\PC001\root\cimv2:Win32_PhysicalMemory.Tag="Physical Memory 1" Attributes : 2 BankLabel : BANK 2 Capacity : 4294967296 Caption : 物理メモリ ConfiguredClockSpeed : 1867 ConfiguredVoltage : 1200 CreationClassName : Win32_PhysicalMemory DataWidth : 64 Description : 物理メモリ DeviceLocator : ChannelB-DIMM0 FormFactor : 0 HotSwappable : InstallDate : InterleaveDataDepth : InterleavePosition : Manufacturer : SK Hynix MaxVoltage : 0 MemoryType : 0 MinVoltage : 0 Model : Name : 物理メモリ OtherIdentifyingInfo : PartNumber : H9CCNNNBJTALAR-NUD PositionInRow : PoweredOn : Removable : Replaceable : SerialNumber : 00000000 SKU : SMBIOSMemoryType : 29 Speed : 1867 Status : Tag : Physical Memory 1 TotalWidth : 64 TypeDetail : 16512 Version : Scope : System.Management.ManagementScope Path : \\PC001\root\cimv2:Win32_PhysicalMemory.Tag="Physical Memory 1" Options : System.Management.ObjectGetOptions ClassPath : \\PC001\root\cimv2:Win32_PhysicalMemory Properties : {Attributes, BankLabel, Capacity, Caption...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic, Locale, provider, UUID} Site : Container : |
物理メモリが複数あると配列になっているので添え字を指定するとか、各要素を合算してから出力してあげたりする必要があります。
1 2 |
PS C:\> Write-Host $memories[0].Capacity 4294967296 |
1 2 |
PS C:\> $memories | ForEach-Object { $total += $_.Capacity } ; Write-Host "メモリ容量: $total" メモリ容量: 8589934592 |