Programming Field

Systeminfo - DOS コマンド一覧

スポンサーリンク

[Windows NT系] コンピューターのシステム情報を画面に表示します。

構文

systeminfo[.exe] [/S <remote-system> [/U <user-name> [/P [<password>]]]]
  [/FO <output-format>] [/NH]
/S <remote-system>
システム情報を取得するコンピューター(ローカル/リモート)の名前を指定します。IPアドレスやホスト名を指定します。省略した場合はローカルコンピューターが対象になります。
/U <user-name> [/P [<password>]]
コンピューター名を指定した際のログイン名・パスワードを指定します。<user-name> にはドメイン名を指定することができます(「ドメイン名\ユーザー名」の形式です)。省略した場合はこのコマンドを実行したユーザーが使用されます。
パスワード指定は、「/P [<password>]」全体を省略した場合はパスワードなし、「/P」のみ指定して「<password>」を省略した場合はプロンプトを表示してユーザーにパスワード入力を促すようになります(このプロンプトでは入力されたパスワードが「*」で表示されます)。
/FO <output-format>
画面に出力する際の書式を指定します。指定できる値は以下の3種類です。/FO を省略した場合は「TABLE」になります。
指定する値意味
TABLE疑似的なテーブル表記で出力します。システム情報は項目数が多く横幅を多く使うため、既定のコマンドプロンプトの幅では表示が崩れる場合があります。
LIST「項目名: 結果」といった対応で情報を表示します。出力された内容を人の目で確認する際に便利な形式です。また、項目名に「:」が入ることがないため(Windows 10での確認)、項目によってはForコマンドでの解析が行いやすい場合があります。
CSVCSV形式で出力します。各種スクリプト言語やプログラムなどで出力結果を解析したい場合に便利です。(Forコマンドでもある程度解析できる可能性はありますが、" " 内に区切り文字が入ることがある場合は解析方法を工夫する必要があります。)
/NH
TABLEやCSV形式で出力する際にヘッダーを出力しません。

解説

Systeminfoプログラムは実行時点での各種システム情報を読み取り、その結果を出力します。コンピューターの状態によりますが、読み取り処理は数秒程度かかります。

なお、TABLEやCSVで出力される項目の順番は実行の度に変わることはありませんが、OSのバージョン等によって変わる可能性はあります。

サンプル1 (バッチファイル)

@echo off
for /f "tokens=1,* delims=:" %%A in ('systeminfo') do if "%%A"=="BIOS バージョン" call :UseBIOSVersion %%B
exit /b

:UseBIOSVersion
    set "BIOS_VERSION=%*"
    exit /b

[拡張構文] システム情報のうち「BIOS バージョン」の内容を環境変数「BIOS_VERSION」に設定します。この例ではLIST形式での出力をForコマンドで解析していますが、これは「BIOS バージョン」より前に出力される項目に「,」が入る可能性があるため、CSV形式での解析がForコマンドでは面倒になるためです。また、「BIOS バージョン: XXXXXX」の「:」と項目内容の間に複数のスペース文字が含まれる可能性があるため、そのスペース文字を取り除く目的でCallコマンドによる呼び出し(引数解析)を利用しています。