Powershellでシステム情報を取得(3)
次はメモリですね。メモリですが、まずはOSで認識されている全容量は
(Get-WmiObject Win32_ComputerSystem).TotalPhysicalMemory
で取得できます。結果はバイト単位なのでGB単位で表すには1024の3乗で割ればいいので
(Get-WmiObject Win32_ComputerSystem).TotalPhysicalMemory/(1024*1024*1024)
になります。結果は
7.92706298828125
で実際は8GB搭載ですがあくまでもOSから見た全容量なので少し小さく見えているのだと思います。
ただ、これだと整数じゃないので正直見づらいです。そのときは以下にて
[Math]::Round((Get-WmiObject Win32_ComputerSystem).TotalPhysicalMemory/(1024*1024*1024), 0, [MidpointRounding]::AwayFromZero) + "GB"
実行すれば(長いですが)以下のように「8」だけが出力されます。
8
一方、全容量ではなくてメモリ個々の容量を知りたいときもあると思います。そのときは
Get-WmiObject win32_physicalmemory
で取得できますが、必要のない情報も多数出力されてしまいます。そこで、必要な情報の容量だけ知りたいときは
(Get-WmiObject win32_physicalmemory).Capacity
で取得します。これもバイト単位です。私のPCはメモリ2枚差しなので結果は
4294967296
4294967296
で出てきます。1枚差しのときは1行しか出力されません。