バッチコマンドでPCやCUPの型番、シリアル番号等を取得する
PCの型番やメーカーをプログラムから取得して判別する必要があったので、バッチコマンドで取得する方法を調べました。
WMI(Windows Management Instrumenta) という Windows OS のシステム管理用インターフェースを使って取得します。wmic.exe
というコマンドラインツールがOSに付属しているので、これを使って WMI を操作していきます。
wmic
を使えばいろいろな情報が取得できるのですが、ここでは PC製品情報と CPU の情報に絞って取得方法をまとめます。
以下、Surface Pro 6 (Windows 10) で実行したときの結果を例として載せています。
wmic を使ってPCの製品情報を取得
wmic csproduct get XXX
というコマンドで製品情報(csproduct
)が取得できます。"XXX" に入るのがほしいデータの名前です。
ベンダー名
$ wmic csproduct get Vendor
Vendor
Microsoft Corporation
モデル名(型番)
$ wmic csproduct get Name
Name
Surface Pro 6
シリアル番号(伏字にしてます。)
$ wmic csproduct get IdentifyingNumber
IdentifyingNumber
XXXXXXXXXXXX
以上のような形でそれぞれ取得可能です。できれば値だけがすぱっと返されてほしいですが、キーと値が改行区切りで取得されるので、プログラム側で切り出して利用しましょう。
まとめて取得
3つまとめて一覧でほしいときはカンマ区切りで列挙することも可能です。
$ wmic csproduct get Name,Vendor,IdentifyingNumber
IdentifyingNumber Name Vendor
010160691853 Surface Pro 6 Microsoft Corporation
とりあえず全部一括取得
一覧取得したいグループ(例えば csproduct
)を指定して項目を指定しないと、データを一括で取得してくれます。
$ wmic csproduct get
Caption Description IdentifyingNumber Name SKUNumber UUID Vendor Version
Computer System Product Computer System Product XXXXXXXXXXXX Surface Pro 6 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Microsoft Corporation X:XX:XXX:XX:XXX:XXX:XXX:X
wmic:root\cli>
ハードウェア、OS関連の情報を取得
製品情報以外も取得できます。ここでは各ハードウェア情報やOSの情報を取得します。
OS の名前
$ wmic os get Name
Name
Microsoft Windows 10 Pro|C:\windows|\Device\Harddisk0\Partition3
CPU の名前
$ wmic CPU get Name
Name
Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz
CPUコア数
$ wmic CPU get NumberOfCores
NumberOfCores
4
CPU論理コア数
$ wmic CPU get NumberOfLogicalProcessors
NumberOfLogicalProcessors
8
物理メモリ容量
$ wmic computersystem get TotalPhysicalMemory
TotalPhysicalMemory
8511287296
Surface Pro 6 の 8GB モデルで確認しました。
ドライブの空き容量
ドライブごとの空き容量を確認します。
$ wmic logicaldisk get deviceid,freespace
DeviceID FreeSpace
C: 204532027392
ドライブを指定してそのデータのみ切り出すには以下のようにします。
$ wmic logicaldisk get deviceid,freespace | find "C:"
C: 204531322880
以上です。
コメントを書く