Command "wmic memphysical get maxcapacity" gives wrong number

I have been using my laptop with 16G (8gx2) memory for a long time, I can use all of 16G memory without any problem, but ran wmic memphysical get maxcapacity today shows however 8388608 (8G), apparently wrong, what's wrong with the command? More importantly, is there a way to get the right number?


Solution 1:

MaxCapacity is in kilobytes.

Here is the source documentation.

The documentation is confusing but this is what I think.

Documentation

It says that MaxCapacity is:

Maximum memory size (in bytes) installable for this particular memory array. If the size is unknown, the property is given a value of 0 (zero).

However, MaxCapacity also has a DEPRECATED qualifier, which is defined like so:

Deprecated

Data type: CIM_BOOLEAN

Applies to: properties, classes

Indicates the property has been superseded by another property.

MaxCapacityEx has the same definition:

Maximum memory size (in bytes) installable for this particular memory array. If the size is unknown, the property is given a value of 0 (zero).

But also specifies that the units are

Units ("kilobytes")

Use Case

When I use the command wmic memphysical get MaxCapacity, I get the result 16777216.

1677216 bytes is 16 Mb

1677216 kilobytes is 16 Gb

16 Mb just doesn't make any sense. Therefore, it's probably returning kilobytes.

Your Max Capacity per slot

8388608 kilobytes is 8 Gb

Use the command wmic memphysical get MaxCapacity, MemoryDevices to see the Maximum Capacity for each slot and the number of slots you have on your motherboard.

My output is:

MaxCapacity  MemoryDevices
16777216     2