n-Archives.net

nWOLc マニュアル:nWOLのコンソールコマンド

目次


nWOLcの概要

nWOLc.exe は、nWOLのコンソールコマンドです。nWOLに登録されているホストに対して、マジックパケット送信、ホスト状態確認処理、起動完了待機処理を、コマンドラインから実行できます。Version2 からはnWOLに登録されているコマンドも実行できるようになっています。バッチファイルやタスクスケジューラなどから処理を起動させることができるようになります。

nWOLのパッケージに同梱されており、インストーラを使ってインストールすると、nWOLと同じフォルダ(C:\Program Files\nWOL)に置かれます。

 

nWOLc.exe で実行できるオプションは以下の通りです。

nWOLc: nWOL Console Command (Version 2.10.X)
                
-l ["regex"]                       List all or regex-matched hosts
-f ["regex"]                       List all or regex-matched hosts with full information
-a                                 Send magic packet to all WOL-capable hosts
-h hostnames...                    Send magic packet to specified hosts
-r "regex"                         Send magic packet to regex-matched WOL-capable hosts
-g groupnames...                   Send magic packet to all WOL-capable hosts in groups
-m mac [ip [mask]]                 Send magic packet
-p hostname                        Check status of a host(or IP) (retcode=0 if online)
-w hostname [waitsec]              Wait for a host(or IP) to come online (retcode=0 if online)
-arp                               Extend the -p and -w to include an ARP-based determination logic
-cmda commandname                  Run command for all hosts
-cmdh commandname hostnames...     Run command for specified hosts
-cmdr commandname "regex"          Run command for regex-matched hosts
-cmdg commandname groupnames...    Run command for all hosts in groups
-ipname [sec]                      Try IPNAME resolution when -cmdX. (sec:timeout, default=3)
-t sec                             Set ping timeout in seconds for the -p or -w options (default=1)
-u port                            Specify the UDP port number for the destination of the Magic Packet
-i                                 Ignore case for the -l, -f, -r, or -cmdr options
-c filename                        Configuration file name(absolute path or user name)
-o filename                        Redirect console output to a file(Absolute path)
-v                                 Verbose mode
-n                                 No output messages
-?                                 Help

 

オプション解説

-l ["regex"] :ホスト名一覧の表示

nWOLに登録されているホスト名の一覧を表示します。

コマンド例 説明
nwolc -l
nWOLに登録されている全てのホスト名を表示する。
nwolc -l "^a.*z$"
nWOLに登録されているホストのうち、正規表現(記載例は aで始まりzで終わる)にマッチするものを表示する。
nwolc -l server -i
nWOLに登録されているホストのうち、正規表現(serverという文字列を含む)にマッチするものを表示する。大文字小文字を区別しない。
  • regexが指定されない場合はnWOLに登録されている全てのホストが表示されます。
  • 正規表現は、” ” で囲んでください。
  • nWOLで使用する正規表現の詳細については、以下のマイクロソフトのページを参照してください。
    Regular Expression Language - Quick Reference」(マイクロソフトのページ)

 

-f ["regex"] :ホスト詳細情報の一覧表示

コマンド指定方法は -l と同じです。各ホストごとに、詳細情報を表示します。

 

-a :全てのホストにマジックパケットを送信する

nWOLに登録されているホストのうち、WOLが許可されている全てのホスト(WOL ModeがDisable以外のホスト全て)に対してマジックパケットを送信します。

コマンド例 説明
nwolc -a
WOLが許可されている全てのホストにマジックパケットを送信する。

-h hostnames... :ホスト名を指定してマジックパケットを送信する

nWOLに登録されているホスト名を指定してマジックパケットを送信します。

起動中(Online)のホストにも送信されます。

WOLが許可されていないホストは除外されます。

コマンド例 説明
nwolc -h Server1 "File Server"
Server1, "File Server" にマジックパケットを送信する。
  • ホスト名に空白を含むような場合は、" " で囲んでください。
  • ホスト名は空白で区切って複数指定できます。
  • 大文字小文字を区別します。

 

-r "regex" :正規表現にマッチする全てのホストにマジックパケットを送信する

nWOLに登録されているホスト名が、指定した正規表現にマッチする全てのホストにマジックパケットを送信します。

起動中(Online)のホストにも送信されます。

WOLが許可されていないホストは除外されます。

コマンド例 説明
nwolc -r ^[0-9]
ホスト名が数字で始まるホスト全てにマジックパケットを送信する。
nwolc -r PC$ -i
"PC" という文字列で終わる全てのホストにマジックパケットを送信する。大文字小文字は区別しない。
  • 正規表現に空白を含む場合などは、” ” で囲んでください。
  • nWOLで使用する正規表現の詳細については、以下のマイクロソフトのページを参照してください。
    Regular Expression Language - Quick Reference」(マイクロソフトのページ)

 

-g groupnames... :グループのホストにマジックパケットを送信する

nWOLに登録されているグループに属する全てのホストにマジックパケットを送信します。

起動中(Online)のホストにも送信されます。

WOLが許可されていないホストは除外されます。

コマンド例 説明
nwolc -g Group1
グループ Group1 に属する全てのホストにマジックパケットを送信する。
nwolc -g Group1 Group2
グループ Group1 または Group2 に属する全てのホストにマジックパケットを送信する。

 

-m mac [ip [mask]] :マジックパケットを送信する

MACアドレスを直接指定してマジックパケットを送信します。

コマンド例 説明
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 であるホストにマジックパケットを送信する。
nwolc -m abcdef123456 mypc.mydomain.com
mypc.mydomain.com をDNS解決したIPアドレスにマジックパケットを送信する。
nwolc -m abcdef123456 mypc.mydomain.com 24
mypc.mydomain.com をDNS解決したIPアドレス、ネットマスク 255.255.255.0 (24bit)であるホストにマジックパケットを送信する。
  • 同一LAN内のホストに対しては、MACアドレスのみ指定すれば送信できます。
  • MACアドレスのみ指定した場合、接続されている全てのネットワークIFからマジックパケットが送信されます。複数のネットワークIFが接続されているが、送信先ホストが存在するネットワークIFからのみパケットを送信したい場合は、IPアドレスを指定してください。(ネットマスクは指定する必要はありません。)
  • ルータを経由した先のホストにマジックパケットを送信する場合は、送信先ホストのIPアドレスとネットマスクを指定するか、送信先ホストの存在するNWのディレクティッドブロードキャストアドレスを指定する必要があります。
  • IPアドレスのパラメータ部分には、DNS名を指定することができます。
  • IPアドレスの検索順序は
    (1)IPアドレス形式(192.168.1.10等)として解釈
    (2)DNS名として名前解決
    の順で行われます。
  • DNS名前解決では、nWOLで指定されているDNSサフィックスリストが使用されます。
  • ディレクテッドブロードキャストアドレスとは、IPアドレスのホスト部の全てのビットを1にしたアドレスです。
    参考記事:「ブロードキャストアドレスの種類を知る 」 (atmarkIT記事)

 

-p hostname :ホストの起動状態を調べる

指定されたホストに ping を送信して、ホストの起動状態を調べます。

-arpオプションが設定された場合は、pingレスポンスによる判定に加え、ARPを利用した判定も行われます。詳細は -arp オプションの解説をご覧ください。

コマンド例 説明
nwolc -p Server1
Server1 の起動状態を調べる。
nwolc -p 192.168.1.6
192.168.1.6 の起動状態を調べる。
nwolc -p mypc.mydomain.com
mypc.mydomain.com の起動状態を調べる。
nwolc -p mypc.mydomain.com -arp
mypc.mydomain.com の起動状態を調べる。ARPを利用したonline判定を行う。
nwolc -p Server1 -t 3
Server1 の起動状態を調べる。pingのタイムアウトを3秒に設定する。
  • 起動状態であった場合は戻り値 0、それ以外の場合は戻り値 1 となります。
  • ping のタイムアウトはデフォルトで1秒です。
  • IPアドレスの検索順序は、
    (1)nWOLに登録されているホスト名から検索
    (2)IPアドレス形式(192.168.1.10等)として解釈
    (3)DNS名として名前解決
    の順で行われます。
  • DNS名前解決では、nWOLで指定されているDNSサフィックスリストが使用されます。

 

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

 

-w hostname [waitsec] :ホストが起動状態になるまで待機する

指定されたホストにpingを継続的に送信し、正常な応答があるまで繰り返します。指定されたホストが起動状態になるのを待機します。待機時間は最大waitsec秒となります。waitsecを指定しない場合、ホストが起動するまでコマンドが終了しませんのでご注意ください。

-arpオプションが設定された場合は、pingレスポンスによる判定に加え、ARPを利用した判定も行われます。詳細は -arp オプションの解説をご覧ください。

コマンド例 説明
nwolc -w Server1 60
Server1 が起動するまで最大60秒間待機する。
nwolc -w Server1
Server1 が起動するまで待機する。タイムアウトしない。
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秒に設定する。
nwolc -w 192.168.1.6 60 -arp
192.168.1.6 が起動するまで最大60秒間待機する。ARPを利用したonline判定を行う。
nwolc -w mypc.mydomain.com 60
mypc.mydomain.com が起動するまで最大60秒間待機する。
nwolc -h Server1 -w Server1 60
Server1にマジックパケットを送信した後、Server1が起動するまで最大60秒間待機する。
nwolc -a -w Server1
全てのホストにマジックパケットを送信した後、Server1が起動するまで待機する。タイムアウトしない。
  • 起動状態になった場合、戻り値は 0 となります。待機時間が過ぎた場合など、それ以外の場合は 1 となります。
  • -w は、-a, -h, -r, -g, -m と同時に指定することができます。その場合、マジックパケットを送信した後、指定されたホストが起動するまで待機します。
  • -a, -h, -r, -g, -m と同時に使用した場合、-a, -h, -r, -g, -m の実行結果にかかわらず、-w の実行結果が戻り値として返されます。
  • IPアドレスの検索順序は、
    (1)nWOLに登録されているホスト名から検索
    (2)IPアドレス形式(192.168.1.10等)として解釈
    (3)DNS名として名前解決
    の順で行われます。

 

-arp :ARPを利用したホスト状態判定を行う

-p オプション、または、-w オプション実行時、-arpオプションを付けることで、ping によるホスト状態判定に加え、ARPを利用したホスト状態判定を行います。

ARPを利用したホスト状態判定を行うことによって、pingレスポンスを返さないホストについても状態判定が可能になります。

詳細は、「ARPを利用したホスト状態判定方法の改善について」をご覧ください。

コマンド例 説明
nwolc -p mypc.mydomain.com -arp
mypc.mydomain.com の起動状態を調べる。ARPを利用したonline判定を行う。
nwolc -w 192.168.1.6 60 -arp
192.168.1.6 が起動するまで最大60秒間待機する。ARPを利用したonline判定を行う。

 

-cmda commandname :全てのホストに対してコマンドを実行する

nWOLに登録されている全てのホストに対して、nWOLに登録されているコマンドを実行します。

ホストの状態によらず、全てのホストに対して実行されます。(nWOLの動作と異なります)

コマンド例 説明
nwolc -cmda Command1
全てのホストに対してCommand1を実行する。

 

-cmdh commandname hostnames... :ホスト名を指定してコマンドを実行する

指定されたホストに対して、nWOLに登録されているコマンドを実行します。

ホストの状態によらず、指定された全てのホストに対して実行されます。(nWOLの動作と異なります)

コマンド例 説明
nwolc -cmdh Command1 Server1
Server1に対してCommand1を実行する。
nwolc -cmdh Command1 Server1 Server2
Server1とServer2に対してCommand1を実行する。

 

-cmdr commandname "regex" :正規表現にマッチする全てのホストに対してコマンドを実行する

正規表現にマッチする全てのホストに対して、nWOLに登録されているコマンドを実行します。

ホストの状態によらず、指定された全てのホストに対して実行されます。(nWOLの動作と異なります)

コマンド例 説明
nwolc -cmdr Command1 ^[0-9]
ホスト名が数字で始まる全てのホストに対して Command1を実行する。
nwolc -cmdr Command1 PC$ -i
"PC" という文字列で終わる全てのホストに対して Command1を実行する。
  • 正規表現に空白を含む場合などは、” ” で囲んでください。
  • nWOLで使用する正規表現の詳細については、以下のマイクロソフトのページを参照してください。
    Regular Expression Language - Quick Reference」(マイクロソフトのページ)

 

-cmdg commandname groupnames... :グループに属する全てのホストに対してコマンドを実行する

nWOLに登録されているグループに属する全てのホストに対して、nWOLに登録されているコマンドを実行します。

ホストの状態によらず、指定されたグループの全てのホストに対して実行されます。(nWOLの動作と異なります)

コマンド例 説明
nwolc -cmdh Command1 Group1
Group1に属する全てのホストに対してCommand1を実行する。
nwolc -cmdh Command1 Group1 Group2
Group1またはGroup2に属する全てのホストに対してCommand1を実行する。

 

-ipname [sec] :NWOL_IPNAME環境変数に設定するホスト名解決を行うか指定する

nWOLcは、コマンド実行時に、コマンドに対して、環境変数を渡します。環境変数NWOL_IPNAME には、ホスト名(IPアドレスへの名前解決が可能である名前)が取得できる場合はそのホスト名が設定され、それ以外の場合はIPアドレスが設定されます。

このホスト名を取得するためには、IPアドレスを解決しホスト名を取得する必要があります。nWOLcでは、デフォルトでは、この解決は行われませんので、解決を行う場合 -ipnameオプションを指定します。

secには、この解決を行う際のタイムアウト秒数を指定します。デフォルトは3秒です。

コマンド例 説明
nwolc -comh Command1 Server1
Server1に対してCommand1を実行する。その際、NWOL_IPNAME環境変数のホスト名解決を行わない。
nwolc -comh Command1 Server1 -ipname
Server1に対してCommand1を実行する。その際、NWOL_IPNAME環境変数のホスト名解決を行う。タイムアウト3秒。
nwolc -comh Command1 Server1 -ipname 5
Server1に対してCommand1を実行する。その際、NWOL_IPNAME環境変数のホスト名解決を行う。タイムアウト5秒。

 

-t sec :pingのタイムアウト秒数を設定する

-p, -w で実行される ping のタイムアウト秒数を設定します。

コマンド例 説明
nwolc -p Server1 -t 3
pingタイムアウトを3秒に設定し、Server1の起動状態を調べる。
  • -p または -w とともに指定する必要があります。
  • ping のタイムアウトはデフォルトで1秒となっています。
  • 今どきのネットワークであれば、ping の応答は1秒以内で返ってくると思いますが、pingの応答が1秒以上かかってしまうことがあるような場合、このオプションで適切な値に設定してください。

 

-u port  : Magic Packetの送信先のUDPポート番号を指定する

-a, -h, -r, -g, -m でマジックパケットを送信する際、マジックパケットの送信先のUDPポート番号を指定します。

コマンド例 説明
nwolc -a -u 7000
nWOLに登録されている全てのホスト(WOLModeがDisable以外)に対して、UDP port 7000宛てにマジックパケットを送信します。nWOLで設定されているUDPポート番号の設定をオーバーライドします。
nwolc -h Server1 -u 7000
Server1の UDP port 7000にマジックパケットを送信します。nWOLで設定されているUDPポート番号の設定をオーバーライドします。
nwolc -m abcdef123456 192.168.10.20/24 -u 7000
UDP port 7000にマジックパケットを送信します。
nwolc -m abcdef123456 mypc.mydomain.com 24 -u 7000
UDP port 7000にマジックパケットを送信します。

 

-i :正規表現で大文字小文字を区別しない

-l, -f, -r, -cmdr で、正規表現の処理を行う際に、大文字小文字を区別しない設定にします。

 

-c filename :設定ファイル名を指定する

読み込む設定ファイルを指定します。パラメータには設定ファイルの絶対パス名、または、ユーザ名を指定します。

ユーザ名を指定した場合、設定ファイルは C:\Users\<ユーザ名>\AppData\Roaming\nWOL\nWOL2.conf となります。Version2の conf ファイルが参照されます。実行前に、nWOLを起動して、nWOL2.confを作成しておく必要がありますので、ご注意ください。

読み込む設定ファイルには適切なアクセス権が付与されている必要があります。

コマンド例 説明
nwolc -c "c:\Users\User Name\AppData\
Roaming\nWOL\nWOL2.conf" -l
絶対パスで指定されたファイルを設定ファイルとして読み込み -l を実行する。
nwolc -c "User Name" -l
指定されたユーザのVersion2設定ファイルを読み -l を実行する。

 

-o filename :コンソール出力をファイルにリダイレクトする

コンソール出力をファイルにリダイレクトします。ファイル名は絶対パスでなければなりません。ファイルが存在する場合、追記モードで出力されます。

コマンド例 説明
nwolc -o "c:\Windows\Temp\out.log" -l
コンソール出力を指定されたファイルにリダイレクトし、-l を実行する。

 

-v :処理状況を表示する

処理状況を示すより多くのメッセージを表示します。

 

-n :メッセージの表示をしない

メッセージの表示を一切行わないようにします。

 

-? :ヘルプの表示

ヘルプを表示します。オプション無しで nWOLc を実行してもヘルプが表示されます。

 

戻り値

nWOLc の戻り値は、基本的には、正常終了は 0、何らかのエラーがあった場合(コンソール表示に "Error:" が表示された場合)は1となります。

-p -w の場合は、ホストが起動中であれば 0、それ以外の場合は 1 となります。

また、-a -h -r -g -m いずれかと -w が同時に指定された場合、 マジックパケット送信処理でエラーが表示されていても、-w の戻り値が返されます。

 

ARPを利用したホスト状態判定の動作について

nWOL(GUI版)では、ホストの状態判定は、pingによる判定と、ARPを利用した判定の両方を組み合わせて実行しています。

一方、nWOLcでは、-pオプション、 -wオプションの実行時は、Version1 の仕様を踏襲し、pingのみによる判定が行われ、-arpオプションを付加することで、ARPを利用した判定が行われるようになります。

-arp オプション指定時の注意点としては、「ホストが実際に停止してから、15秒~45秒程度までonlineと判定されてしまう」という点があります。15秒~45秒程度Offline判定が遅れることになりますので、ご注意願います。

 

詳細については、「ARPを利用したホスト状態判定方法の改善について」をご覧ください。

 

コマンド実行オプション実行時の注意点

nWOL Version2 では、コマンド実行機能が追加となっています。nWOLc では、-cmda, -cmdh, -cmdr, -cmdg オプションでコマンドを実行できるようになっています。

nWOLcからコマンドを実行する際の注意点を以下にまとめます。

  • nWOLcのコマンド実行オプションで、複数のホストに対してコマンドを実行する場合、実行は、各ホストに対する処理が1つづつシーケンシャルに行われます。途中のホストの処理が滞った場合は、そのホストに対するコマンド実行が完了するまで、以降のホストに対する処理は行われません。
  • コマンドによっては、資格情報の入力を促されることがあります。入力が行われるまで処理は中断されます。
  • 複数のホストに対してコマンドを実行する際、資格情報の入力を促されたがそのホストの処理を中止する場合、User Name または Password の入力時に、Ctrl-Z (^Z) を入力してEnterを押してください。そのホストの処理が中断され、次のホストの処理に移ります。以降の全てのホストの処理を中止したい場合は、Ctrl-C を入力してください。
  • nWOLc は、Ctrl-C で中断することができます。中断した以降のホストに対してはコマンドは実行されません。
  • 各コマンドに渡される環境変数 NWOL_HOSTNAME は記号文字が "_" に置換されます。この置換を行わない場合は、nWOL(GUI版)の設定で、「環境変数の文字エスケープを行わない」をチェックしてください。
  • 環境変数 NWOL_IPNAME のアドレス→名前 解決を行う場合は、-ipname オプションを付けてください。名前解決できない場合は、タイムアウトまでデフォルトで3秒かかります。
  • コマンド実行オプションはnWOLのライセンスが正しく登録されていないと実行できません。

 

-m, -p, -w オプションは nWOLc.exe 単独でも使用可能

nWOLc.exe は基本的には nWOL で登録されている情報(ホスト、グループ、コマンド)に対して処理を行いますが、-m オプション、および、-p, -w をIPアドレス指定とした場合については、nWOLの設定情報を使用しないため、nWOLc.exe 単独で使用できます。

 

nWOL、nWOLc で使用する正規表現の仕様

nWOL, nWOLcで使用する正規表現の仕様については、以下のリンクを参照してください。

Regular Expression Language - Quick Reference」(マイクロソフトのページ)

 

 

Related Articles

 

この記事へのコメント

管理者   2021-08-30 00:20:25
KATSUHIKOさん、ご連絡大変ありがとうございました。ご指摘の通り、バグとなっていました。先ほど修正版を公開しましたので、お試しください。よろしくお願い致します。

KATSUHIKO   2021-08-29 17:28:03
nWOLc で、 ホストを指定してマジックパケットを送信する
nWOLc -h host
では、not WOL capable のエラーになります。
リストオプションでは、そのホストは WOL capableと表示されます。

MACアドレス指定ではWOLできるので、差し当たり十分使えるので問題はないのですが、バグの様なので一応お知らせしておきます。

管理者   2020-11-28 14:49:36
nWOLアプリ側の設定画面で、「起動されるホスト」の設定は以下のようにしてください。
IPアドレス欄:起動されるPCのIPアドレスを指定する必要があります。192.168.10.255のような
ディレクティッドブロードキャストアドレスを指定すると起動状態が正しく表示されません。
ネットマスク欄:起動されるPCのネットマスクを指定する必要があります。
空欄ですと、ルータを超えた先へ正しくマジックパケットを送信できません。

IP欄に、255で終わるようなディレクティッドブロードキャストアドレスを指定していませんか?

yaguchi   2020-11-28 13:52:53
pingの確認後
コマンドライン
「ルータを経由した先に存在し、MACアドレスが abcdef123456、ディレクティッドブロードキャストアドレスが192.168.10.255 であるホストにマジックパケットを送信する。」
に従い、ネットマスクを記入せず実行したところ、NAT外からホストPCの起動が出来ました。

そのため、
アプリの設定画面でネットマスクを「空欄」のまな設定し、起動実行したところ、
外部無事に起動出来ました。

しかし、アプリを常駐させておくと「ON」表示のままになってしまい、ホストPCをシャットダウンしても「OFF」表示になりません。

私の設定に異常項目があるのでしょうか?
ご教授いただきたく宜しくお願いします。



コメントをお送りください
お名前:
コメント:
コメントの公開:



管理者より個人的に返信をご希望の方は、コメント中に必ずメールアドレスを記載してください。記載がないと返信できませんのでご注意ください。

If you want personal response from the author, please do not forget to write your email address in the comment. Otherwise, the author can not reply.

投稿されたコメントは手動で処理されるため、記事として登録されるまで1日程度かかります。

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