2013/11/17(日) [n年前の日記]
#1 [pc][windows] Wake on LAN 関係のソフトをいくつか試用してみたり
親父さんPCからPT1機を起動させるために、親父さんでも使えそうな Wake on LAN(WOL)関係のフリーソフトをいくつか探して試用してみたり。環境は、Windows7 64。
WOLてのは、離れた場所にあるPCを、遠隔操作で電源オンにすることが可能な機能、という説明でいいのかな。LAN経由でマジックパケットとやらを受け取ったらPCの電源を入れる、てな仕組み。今時のPCなら、ほとんどはWOLに対応してると思うけど、事前に、BIOS、OS上のLAN設定で、WOLを有効にしておく必要があるらしい。
WOLてのは、離れた場所にあるPCを、遠隔操作で電源オンにすることが可能な機能、という説明でいいのかな。LAN経由でマジックパケットとやらを受け取ったらPCの電源を入れる、てな仕組み。今時のPCなら、ほとんどはWOLに対応してると思うけど、事前に、BIOS、OS上のLAN設定で、WOLを有効にしておく必要があるらしい。
◎ _Wake on LAN for Windows :
- 比較的シンプルなGUI。メニュー等は日本語表記。
- ツールバー上のアイコンをクリックするだけで、マジックパケットが送信できる。(WOLが使える。)
- PCのホスト名?だけ分かれば、IPアドレスやMACアドレスを取得して登録できる。(相手先PCの電源が入っている必要有り。)
- WOL利用可能な最低限のPCだけ登録しておく、といった使い方ができるので、パッと見でごちゃごちゃしなくて済みそう。
- 逆に、LAN内にあるPCをスキャンしてリストアップする機能はない・手入力で登録していかないといけないので、大量のPCを管理するのは難しい。
- ソフト起動と同時に、登録済みPCの電源が入ってるかどうかチェックしてくれる機能有り。
- 電源ON状態を「*」文字で表示してくれるものの、その意味を年配者が覚えていてくれるかどうか…ちょっと不安。
- ツールバー上のアイコンはそれほど大きくないので、これも年配者にはちょっと厳しい…かもしれない。
◎ _WakeMeOnLan :
- 比較的シンプルなGUI。英語圏のソフトだけど、日本語化ファイルがあるので、メニュー等を日本語化できる。
- ツールバー上のアイコンをクリックするだけで、マジックパケットが送信できる。
- LAN内のPCをスキャンしてリストアップする機能がある。目的のPCの電源が入っていれば、手作業で登録しなくて済む。
- 電源が入っているかどうかを、緑と赤のアイコンで伝えてくれるので、見た目では分かりやすいかもしれない。
- 一旦削除した項目を復活させる方法がよく分からず。電源が入っていれば再度スキャンした際にリストアップしてくれる…のかな?
- ツールバー上のアイコンはそれほど大きくない。
- マジックパケット送信ボタンの隣に「削除」ボタンがあるので、操作を間違えて、リストから目的のPCを削除する可能性がかなり高い…。
◎ _SoftPerfect Network Scanner :
- メニュー等が英語表記。
- 高機能。LAN内PCのスキャン・リストアップの他に、共有フォルダの一覧も表示してくれる。
- 電源が入ってないPCは、リストアップしてくれない。また、起動するたびにリストはクリアされる。
- マジックパケットの送信は、ちょっと面倒。Wake-On-LAN Manager (WOL Manager) ダイアログを開いて行う形になる。電球みたいなアイコンをクリックすれば開く。事前にMACアドレス等を登録しておく必要有り。
- 相手先PCの電源が入ってる状態なら、スキャンすればリストアップされるはずなので、WOL Manager への登録が少しだけ楽になる。該当PCを選択 → 右クリック → Wake-On-LAN → Save MAC to WOL Manager で、WOL Manager にMACアドレスを送って登録。
- ツールバー上のアイコンはそれほど大きくない。
◎ Wake on LAN for Windows を試用することに。 :
見た目が一番シンプルに思えた Wake on LAN for Windows を、しばらく試用させてもらうことに。親父さんPCに導入して、親父さんにも使い方を説明しておいた。
でも、しばらく使わなかったりすると、「なんだこのアイコンは?」状態になりそうな予感も。茶の間にREGZAがあって、親父さんはソレを見ながらPC作業をしてることが多いから、TVTest を使う場面はまずほとんど無いし。親父さんとお袋さんの見たい番組が競合しちゃった時ぐらいしか使わないだろうけど、その時には、TVTest の存在すら忘れてそう。
む。もしかして TVTest 自体に WOL関連機能が入ってたりは…しないな。設定ダイアログを眺めたけど、それらしいものはなかった。
でも、しばらく使わなかったりすると、「なんだこのアイコンは?」状態になりそうな予感も。茶の間にREGZAがあって、親父さんはソレを見ながらPC作業をしてることが多いから、TVTest を使う場面はまずほとんど無いし。親父さんとお袋さんの見たい番組が競合しちゃった時ぐらいしか使わないだろうけど、その時には、TVTest の存在すら忘れてそう。
む。もしかして TVTest 自体に WOL関連機能が入ってたりは…しないな。設定ダイアログを眺めたけど、それらしいものはなかった。
◎ コマンドラインツールでどうにかする方法もありそう。 :
batファイルの類を書いて、1クリックで TVTest 起動まで持っていけそうな気もしてきた。コマンドラインツールからマジックパケットを送信して、その後 TVTest を起動すれば…。
ググった感じでは、コマンドラインで使えるツールとしては、 _MagicSend がメジャーらしい。
Ruby が入ってる環境なら、Rubyを使ってもマジックパケットが送信できる模様。
_wol | RubyGems.org | your community gem host
_Wake On Lan についてのまとめ (リモートのマシンを起動) | TipsZone
_rubyでWake-on-LANのマジックパケットを送信する - kobaken75の日記
_コチョナナバ: rubyでWake On LAN
_Wake On LAN(WOL) tool/class for Ruby
Python でも Perl でもできるらしい。
_wol.py
_Source/Perl/WakeUp - 備忘録
ググった感じでは、コマンドラインで使えるツールとしては、 _MagicSend がメジャーらしい。
Ruby が入ってる環境なら、Rubyを使ってもマジックパケットが送信できる模様。
_wol | RubyGems.org | your community gem host
_Wake On Lan についてのまとめ (リモートのマシンを起動) | TipsZone
_rubyでWake-on-LANのマジックパケットを送信する - kobaken75の日記
_コチョナナバ: rubyでWake On LAN
_Wake On LAN(WOL) tool/class for Ruby
Python でも Perl でもできるらしい。
_wol.py
_Source/Perl/WakeUp - 備忘録
◎ 親父さんが操作できなかった。 :
親父さんから「チューナー機の電源が入らないぞ」と言われてしまった。変だな。あれだけテストしたのに…。
後ろから操作を眺めたら、Wake on LAN for Windows のリスト更新ボタンしか押してなくて、肝心のマジックパケット送信ボタンを押してなかった。このツール・操作手順では、やっぱりダメか…。
やはり、ワンクリックで、マジックパケット送信と TVTest.exe の起動までやってしまおう。
tvtest_exec.vbs
.vbs で ping を打つソレは、 _Systemメモメモ: VBScriptでPing をそのまま使わせてもらいました。ありがたや。
.vbs で ping を打つ方法について調べてたら、ping.exe を呼んで処理する方法も見つけた。
_Hey, Scripting Guy! : ping を使用するスクリプトを Windows 2000 コンピュータで実行できないのはなぜですか
ただ、コレは、Windows 2000 ではそうするしかない、みたいな話のようで。Windows XP や Windows 7 では、わざわざその方法を選ばなくてもいいらしい。
後ろから操作を眺めたら、Wake on LAN for Windows のリスト更新ボタンしか押してなくて、肝心のマジックパケット送信ボタンを押してなかった。このツール・操作手順では、やっぱりダメか…。
やはり、ワンクリックで、マジックパケット送信と TVTest.exe の起動までやってしまおう。
- ping を打ってPT1機が起きてるか調べる。
- 起きてなければ、MagicSend を呼んでマジックパケット送信を行う。
- ※ MagicSend は TVTest と同じフォルダに入れておくことにした。
tvtest_exec.vbs
' PT1機に MagicSend を使って Magic Packet を送信してから TVTest を起動する Option Explicit Const wol_exec = "MagicSend\MagicSend.exe 00-00-00-00-00-00" Const hostip = "192.168.1.69" Const tvtest = "TVTest.exe" Dim wsh Set wsh = WScript.CreateObject("WScript.Shell") Dim res If fncPing(hostip) = False Then if MsgBox("チューナー機は起動していません。" & vbCr & "起動しますか?", _ vbYesNo + vbQuestion) = vbYes then wsh.Run wol_exec, 2, True res = wsh.Popup("チューナー機を起動しました。" _ & vbCr & "4秒ほどお待ちください。", 4) If res = vbOK Then WScript.Sleep(4000) End If end If Else res = wsh.Popup("チューナー機は既に起動しています。", 2) End If If MsgBox("TVTest を起動しますか?", vbYesNo + vbQuestion) = vbYes Then wsh.Run tvtest, , False End If Set wsh = Nothing WScript.quit ' ping送信をする関数。 ' 以下のページ内容をそのまま使わせてもらいました。 ' Systemメモメモ: VBScriptでPing ' http://happy44s.blogspot.jp/2012/03/vbscriptping.html Function fncPing(host) Dim objWMI Dim colItems Dim objItem Set objWMI = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMI.ExecQuery("select * from Win32_PingStatus where address ='" _ & host & "'") For Each objItem In colItems If objItem.StatusCode = 0 Then fncPing = True Else fncPing = False End If Next Set objItem = Nothing Set colItems = Nothing Set objWMI = Nothing End Function使う際には「Const 〜」のあたりを環境に合わせて修正する必要有り。
.vbs で ping を打つソレは、 _Systemメモメモ: VBScriptでPing をそのまま使わせてもらいました。ありがたや。
.vbs で ping を打つ方法について調べてたら、ping.exe を呼んで処理する方法も見つけた。
_Hey, Scripting Guy! : ping を使用するスクリプトを Windows 2000 コンピュータで実行できないのはなぜですか
ただ、コレは、Windows 2000 ではそうするしかない、みたいな話のようで。Windows XP や Windows 7 では、わざわざその方法を選ばなくてもいいらしい。
この記事へのツッコミ
[ ツッコミを読む(1) | ツッコむ ]
以上です。
こちらの方が楽かも。