コマンドプロンプトでPCのメーカーやモデル名を取得するWMICコマンドとバッチファイル

目次

メーカー名を判別するコマンドを探していたらあった

PCのメーカー名を判別して処理を分けるバッチファイルを作成しなければならない状況があり、WMICコマンドを使えば必要な情報を取得できることが分かったのでメモ。

WMIC CSPRODUCTコマンド

Windowsのコマンドラインツール「WMIC.exe」を使用すればPCのハードウェアやソフトウェアの情報がいろいろ取得できます。WMICの中でもCSPRODUCTを使ってコマンドプロンプトで実行すれば、PCのベンダー名(メーカー)、モデル名(型番)、シリアル番号等を確認・表示することができます。

すべての情報を表示する

とりあえずCSPRODUCTで表示できるすべての情報を表示します。

wmic csproduct

メーカー名(ベンダー名)を表示する

wmic csproduct get Vendor

モデル名(型番)を表示する

wmic csproduct get Name

シリアル番号(製造番号)を表示する

wmic csproduct get IdentifyingNumber

複数を選択して表示する

CSPRODUCTで取得できる情報の中で、メーカー名、型番、シリアル番号の3つに絞って複数を確認したいときはカンマで区切れば一度にまとめて確認できます。

wmic csproduct get Name,Vendor,IdentifyingNumber

コマンドの実行例

富士通製の Windows 7 のPCで実行した例

wmic csproduct windows7 fujitsu

自作の Windows 10 のPCで実行した例

全て「To Be Filled By O.E.M.」となっている。

wmic csproduct windows10 oem

バッチファイル例

富士通製PCと、そうでなない場合を判別する例

@echo off
wmic csproduct get Vendor|findstr "FUJITSU"
if %errorlevel% equ 0 (
	echo 富士通製のPCです。
) else (
	echo 富士通製のPCではありません。
)
pause

取得したベンダー名(メーカー名)を変数に入れて判別する例

@echo off

for /f "tokens=2 usebackq delims=^:" %%i in (`wmic csproduct get Vendor ^| findstr /n /r "." ^| findstr /r "^2:"`) DO @set Get_Vendor=%%i

rem 行末のスペースを削除
call :Trim %Get_Vendor%

echo.
echo %Get_Vendor%
echo.

if "%Get_Vendor%" == "FUJITSU" (
	echo 富士通製のPCです。
) else (
	echo 富士通製のPCではありません。
)

echo.

pause

:Trim
set Get_Vendor=%*
SYSTEMINFOコマンドから取得する場合

FOR文の部分を以下のようにすれば、SYSTEMINFOを実行したときに表示される「システム製造元」の値からベンダー名を取得できます。SYSTEMINFOは情報の取得に時間がかかるので、同じ値を取得するならWMICの方が速いです。

 for /f "tokens=1,2* usebackq delims=^:" %%i in (`systeminfo ^| findstr /n /r "." ^| findstr /r "^13:"`) DO @set Get_Vendor=%%k

その他参考サイト

wmi概要 wmic.exe windowsコマンドラインツール | it資産管理(パソコン、サーバー、プリンタなど it資産の管理)

http://assetmanage.whitefox.jp/?eid=13

windowsでwmiとwmicコマンドを使ってシステムを管理する(基本編):tech tips - @it

https://www.atmarkit.co.jp/ait/articles/0804/18/news154.html

前へ

FLASH Playerの自動更新を有効にする設定変更をバッチファイルで実行する方法。

次へ

コマンドプロンプトで取得した文字列や変数内の行末にある空白を削除する方法