※本ページにはプロモーション(広告)が含まれています
Windowsのハードウェア・ソフトウェア情報を統一的に取得・操作する管理インターフェース。自動化の基盤。
詳しい解説
WMIは『Windows Management Instrumentation』の略で、Windowsのあらゆる管理情報(ハードウェア構成・OS設定・プロセス状態・ネットワーク情報など)を統一的に取得・操作できる管理基盤です。IT管理者やスクリプト開発者が監視・自動化を行うための共通APIとして1998年から組み込まれています。
大きな特徴は『統一的なデータモデル』です。CPU温度を知りたい、メモリ容量を調べたい、起動中のプロセスを一覧化したい、といった様々な情報を、同じクエリ構文(WQL、SQL類似)で扱えます。WQLのサンプル: `SELECT * FROM Win32_Process` でプロセス一覧、`SELECT * FROM Win32_LogicalDisk` でドライブ情報が取得可能です。
利用方法は主に3つです。①コマンドプロンプト: `wmic cpu get name` のようにwmicコマンドで手軽に情報取得(ただしwmicは非推奨で段階的廃止)、②PowerShell: `Get-WmiObject` または新しい `Get-CimInstance` でオブジェクトとして取得し、自動化に使用、③VBScript/C#/C++: プログラムから直接呼び出して管理ツールを作成。
実際の用途としては、①ハードウェア情報の一括収集(数百台のPCのCPU・メモリ・シリアル番号を一覧化)、②動作状況の監視(CPU使用率・ディスク空き容量・ネットワーク状態)、③ソフトウェア管理(インストール済みアプリ一覧、自動アンインストール)、④イベント検知(ユーザーログイン、デバイス接続などに応じた自動処理)、⑤システム変更(レジストリ・サービス・プロセスの操作)があります。
WMIはグループポリシーの基盤技術でもあり、Windows管理の根幹を支えています。そのため、WMIサービス(Windows Management Instrumentation)が壊れると、様々な管理機能が動かなくなることがあり、その場合は `winmgmt /salvagerepository` コマンドでWMIリポジトリを修復するのが定番対処です。
注意点として、WMIは非常に強力なため、セキュリティ上の攻撃にも悪用されます。『WMIイベントサブスクリプション』を使った持続的マルウェアが報告されており、企業環境ではWMI監視も重要なセキュリティ対策項目です。
自社の200台のPCから『Windowsバージョン』『メモリ容量』『シリアル番号』を一括収集したい場面を想像してください。PowerShellで `Get-CimInstance -ClassName Win32_ComputerSystem` を実行すれば1台分の情報が瞬時に取れ、これをリモートPC対象にForEachで回せばCSVに一気に集約できます。従来の手作業ならば数日かかる資産確認が数分で完了します。
別の呼び方
wmic
Get-WmiObject
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!