コマンドプロンプトでPCのメーカーやモデル名を取得するWMICコマンド
バッチファイルでPCのメーカー名を判別して処理を分ける必要があり、WMICコマンドで情報を取得できることが分かったのでメモ。
WMIC CSPRODUCTコマンド
メーカー名(ベンダー名)を表示する
wmic csproduct get Vendor
モデル名(型番)を表示する
wmic csproduct get Name
シリアル番号(製造番号)を表示する
wmic csproduct get IdentifyingNumber
実行例
富士通製の Windows 7 のPCで実行した例
自作の Windows 10 のPCで実行した例
全て「To Be Filled By O.E.M.」となっている。
バッチファイル例
富士通製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