n-Archives.net

バッチファイルでWake on LANのマジックパケットを送信する

Table of Contents


マジックパケットを送信できるコマンド nwolc.exe

バッチファイルの中で、Wake on LAN のマジックパケットを送信することのできるコマンドとして、nwolc.exe があります。このコマンドは、Wake on LAN ツールであるnWOLに同梱されているコマンドとなっており、

  • マジックパケットを送信する
  • ホストの起動状態を確認する
  • ホストが起動状態になるまで待機する

といった基本的な処理の他、GUIツールnWOLと連動した様々な処理が可能となっています。この記事では、ダウンロード・インストールから上記3つの基本動作についてご紹介します。

 

nWOLのダウンロードとインストール

nWOL は、nWOLのホームページからダウンロードしてください。

インストーラを使うと簡単にインストールができますが、zipファイルをダウンロードして任意のフォルダに展開することでもOKです。

 

nwolc.exeの実行

インストーラを使ってインストールすると、nwolc.exe は通常 C:\Program Files\nWOL\nwolc.exe にインストールされます。

コマンドラインから、nwolを実行する場合、以下のように実行します。オプション無しで起動するとヘルプが表示されます。(nwolc.exeを別のフォルダに置いている場合は、正しいパスを入力してください。)

C:\>"C:\Program Files\nWOL\nwolc"
nWOLc: nWOL console command   (Version 1.5.25)

-l ["regex"]         List all or regex-matched hosts
-a                   Send magic packet to all WOL capable hosts
-h hostnames...      Send magic packet to specified WOL capable hosts
-r "regex"           Send magic packet to regex-matched WOL capable hosts
-m mac [ip [mask]]   Send magic packet
-p hostname          Check status of a host(or IP) (retcode=0 when online)
-w hostname waitsec  Wait for a host(or IP) to come online (retcode=0 when online)
-t sec               Set ping timeout in seconds for -p or -w (default=1)
-i                   Ignore case when -l or -r
-n                   No output messages
-?                   Help

フルパスを書くのが面倒な場合、C:\Program Files\nWOL にパスを通しておけば、

C:\>nwolc
だけで実行できます。
C:\Program Files\nWOL にパスを通しておくためには以下を実行しておきます。
C:\>set path=%path%;C:\Program Files\nWOL
以下、Wake on LANに関する基本的なコマンドの使い方をご紹介します。
C:\Program Files\nWOL にパスが通っている前提とします。

 

マジックパケットを送信する

最も基本的な使い方は、同一LANのホストに対してマジックパケットを送信する場合になります。 -m オプションを使って以下のように実行します。

C:\>nwolc -m abcdef123456

abcdef123456 は、起動したいホストのMACアドレスを設定してください。

起動したいホストが同一LANではなく遠隔のNWに存在する場合、起動したいホストのIPアドレスとネットマスクを指定する必要があります。例えば、以下のような感じです。

C:\>nwolc -m abcdef123456 192.168.10.20/24

詳細なコマンド例は以下を参照ください。

コマンド例 説明
nwolc -m abcdef123456
同一LAN内に存在し、MACアドレスが abcdef123456 であるホストにマジックパケットを送信する。
nwolc -m abcdef123456 192.168.1.20
同一LAN内に存在し、MACアドレスが abcdef123456、IPアドレスが192.168.1.20 であるホストにマジックパケットを送信する。
nwolc -m abcdef123456 192.168.10.20 255.255.255.0
nwolc -m abcdef123456 192.168.10.20 24
nwolc -m abcdef123456 192.168.10.20/24
ルータを経由した先に存在し、MACアドレスが abcdef123456、IPアドレスが192.168.10.20、ネットマスクが 255.255.255.0 (24bit) であるホストにマジックパケットを送信する。
nwolc -m abcdef123456 192.168.10.255
ルータを経由した先に存在し、MACアドレスが abcdef123456、ディレクティッドブロードキャストアドレスが192.168.10.255 であるホストにマジックパケットを送信する。

 

ホストの起動状態を確認する

バッチファイルの中で、遠隔ホストの起動状態を調べたい場合は、-p オプションを使います。

C:\>nwolc -p 192.168.1.6
192.168.1.6 is online

上記の実行例のように、ホストが起動中であれば、onlineと表示されます。その他コマンド例は下表ご覧ください。

コマンド例 説明
nwolc -p 192.168.1.6
192.168.1.6 の起動状態を調べる。
nwolc -p 192.168.1.6 -t 3
192.168.1.6 の起動状態を調べる。pingのタイムアウトを3秒に設定する。

コマンドのリターンコードは起動中の場合 0、停止中であれば 1 となります。

バッチファイルの記述例:

nwolc -p 192.168.10.20

if %errorlevel%==0 (
    <起動状態の時の処理>
)else(
    <停止状態の時の処理>
)

※参考:ホストの起動状態はpingコマンドでも確認できますが、Windowsのpingコマンドの場合、「宛先に到達できない(送信先アドレスへのルートがない)場合」についても、戻り値が 0 (正常)となります。nwolc -p では、正常に応答が返ってきた場合以外は全て戻り値が 1 となります。

 

ホストが起動状態になるまで待機する

マジックパケットを送信し、ホストが起動するまで待機する場合は -w オプションを使います。

C:\>nwolc -w 192.168.1.6

この場合、ホストが起動するまで永遠に待ち続けますので、タイムアウトを指定したい場合、以下のように指定します。

C:\>nwolc -w 192.168.1.6 60

この例の場合、60秒間ホストが起動しなければ、タイムアウトとなり終了します。

コマンド例 説明
nwolc -w 192.168.1.6
192.168.1.6 が起動するまで永遠に待機する。
nwolc -w 192.168.1.6 60
192.168.1.6 が起動するまで最大60秒間待機する。
nwolc -w 192.168.1.6 60 -t 3
192.168.1.6 が起動するまで最大60秒間待機する。pingのタイムアウトを3秒に設定する。

起動状態になった場合、戻り値は 0、それ以外(タイムアウトなどの場合)は 1 となります。

バッチファイルの記述例:

nwolc -w 192.168.1.6 60

if %errorlevel%==0 (
    <起動した時の処理>
)else(
    <タイムアウト時の処理>
)

 

コンソール画面への出力をしない

コンソール画面への文字の出力を行いたくない場合は、 -n オプションを付けることによって、何も表示されなくなります。

 

nWOLの詳細ページ

上記紹介した機能の他、GUIツールであるnWOLと連動した高度な機能が使用できます。詳しくは以下のページをご覧ください。

 

Related Articles

 

Submit your comment
Name:
Comment:
Submission type:



Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.