systeminfo と wmic コマンドを使ってバッチファイルからOSバージョン・CPU・メモリ・ディスクなどのシステム情報を取得する方法を解説します。システム情報の自動収集やインベントリ管理に役立ちます。
systeminfoコマンド
systeminfo は一度に多くのシステム情報を表示します。出力量が多いため、findstr でフィルタして必要な情報だけ取り出すのが実用的です。
@echo off
rem すべての情報を表示(出力量が多い)
systeminfo
rem 必要な情報だけフィルタして表示(/i で大文字小文字を区別しない)
systeminfo | findstr /i "OS Name OS Version System Type Total Physical"
rem ファイルに保存してから参照
systeminfo > C:\temp\sysinfo.txt
type C:\temp\sysinfo.txt | findstr /i "OS"
rem リモートコンピューターの情報取得
rem systeminfo /s コンピューター名wmicコマンドで個別の情報を取得する
wmic(Windows Management Instrumentation Command-line)はより細かい情報を取得できます。/value オプションを使うと「名前=値」形式で出力されます。
@echo off
rem OSの情報
wmic os get Caption, Version, BuildNumber /value
rem CPUの情報
wmic cpu get Name, NumberOfCores, MaxClockSpeed /value
rem 物理メモリの合計(バイト単位)
wmic computersystem get TotalPhysicalMemory /value
rem メモリを GB に変換して表示
for /f "tokens=2 delims==" %%a in ('wmic computersystem get TotalPhysicalMemory /value') do (
set /a MEM_GB=%%a/1024/1024/1024
echo メモリ: %MEM_GB% GB
)
rem ディスク情報
wmic diskdrive get Model, Size /value
rem BIOS情報
wmic bios get Manufacturer, Version, ReleaseDate /value
rem ネットワークアダプター
wmic nic get Name, MACAddress /valueシステム情報レポートを自動生成する
@echo off
set REPORT=C:\reports\sysinfo_%COMPUTERNAME%_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt
if not exist C:\reports mkdir C:\reports
echo === システム情報レポート === > "%REPORT%"
echo 取得日時: %DATE% %TIME% >> "%REPORT%"
echo コンピューター名: %COMPUTERNAME% >> "%REPORT%"
echo ユーザー名: %USERNAME% >> "%REPORT%"
echo. >> "%REPORT%"
echo --- OS情報 --- >> "%REPORT%"
wmic os get Caption, Version /value >> "%REPORT%"
echo --- CPU情報 --- >> "%REPORT%"
wmic cpu get Name, NumberOfCores /value >> "%REPORT%"
echo --- メモリ情報 --- >> "%REPORT%"
wmic computersystem get TotalPhysicalMemory /value >> "%REPORT%"
echo レポートを保存しました: %REPORT%
notepad "%REPORT%"まとめ
- systeminfoはfindstrと組み合わせて必要な行だけ取り出す
- wmicは個別の情報をフィールド単位で正確に取得できる
- for /f と組み合わせてwmicの値を変数に格納できる
- システム情報を定期的にファイルに保存してインベントリ管理に活用できる



コメント