図 Windows XPで実行した画面
図 Windows XPで実行した画面
[画像のクリックで拡大表示]

getmac /s 対象パソコン /u ユーザー名 /p パスワード

 イーサネット・カードの情報を確認するgetmacコマンドは,Windows 2000以降のOSが動作しているパソコンに対してはネットワーク経由で実行することもできます。この場合,/sオプションで対象パソコンを,/uオプションで接続に利用するユーザー名を,/pオプションでパスワードを指定します。対象パソコンは,NetBIOS名,DNS名 (FQDN),IPアドレスのいずれかで指定します。

 例えば,Active DirectoryでDHCPからMACアドレス制限を付けてIP割り当てをしようとする場合に,ネットワーク上にあるWindows 2000以降のクライアント端末のイーサネット・カードのMACアドレスを取得したい場合があります。このような場合,最初に作成される「ローカル エリア接続」という接続名がバインドしているMACアドレスを抽出するのがよいでしょう。特定の端末に対してMACアドレスを取得するよりも,仮想ネットワーク接続などが後から追加されていても,ほぼ正しい情報が得られます。

 具体的に,mydomainというドメインの管理者が,192.168.0.100というIPアドレスをもっているパソコンの情報を調べる場合は,以下のようなコマンドを実行します(ドメイン管理者は「password」というパスワードを使用)。

getmac /s 192.168.0.100 /u mydomain\administrator /p password /fo csv /v | find "ローカル エリア接続"

 このようにコマンドを実行することで,192.168.0.100 上の "ローカルエリア接続" にバインドされた「接続名」,「アダプタ名」,「物理アドレス」,「トランスポート名」の四つ項目CSV形式で表示されます。文字列を検索するfindコマンドをパイプで利用することで,普通の「/fo csv /v」オプションで表示される各項目のタイトルや「ローカル エリア接続」以外にバインドされたMACアドレスなどは表示されません。

 さらに,繰り返し実行するforコマンドなどと併用すれば,複数のパソコンに対し一括してMACアドレスを調べることも可能です。ただし,その場合は応答のないパソコンが存在すると待ち時間が発生するうえ,エラーも戻ってくるため,バッチ・ファイルとして設定するときには注意が必要です。