mieki256's diary



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を有効にしておく必要があるらしい。

_Wake on LAN for Windows :

  • 比較的シンプルなGUI。メニュー等は日本語表記。
  • ツールバー上のアイコンをクリックするだけで、マジックパケットが送信できる。(WOLが使える。)
  • PCのホスト名?だけ分かれば、IPアドレスやMACアドレスを取得して登録できる。(相手先PCの電源が入っている必要有り。)
  • WOL利用可能な最低限のPCだけ登録しておく、といった使い方ができるので、パッと見でごちゃごちゃしなくて済みそう。
  • 逆に、LAN内にあるPCをスキャンしてリストアップする機能はない・手入力で登録していかないといけないので、大量のPCを管理するのは難しい。
  • ソフト起動と同時に、登録済みPCの電源が入ってるかどうかチェックしてくれる機能有り。
  • 電源ON状態を「*」文字で表示してくれるものの、その意味を年配者が覚えていてくれるかどうか…ちょっと不安。
  • ツールバー上のアイコンはそれほど大きくないので、これも年配者にはちょっと厳しい…かもしれない。

_WakeMeOnLan :

  • 比較的シンプルなGUI。英語圏のソフトだけど、日本語化ファイルがあるので、メニュー等を日本語化できる。
  • ツールバー上のアイコンをクリックするだけで、マジックパケットが送信できる。
  • LAN内のPCをスキャンしてリストアップする機能がある。目的のPCの電源が入っていれば、手作業で登録しなくて済む。
  • 電源が入っているかどうかを、緑と赤のアイコンで伝えてくれるので、見た目では分かりやすいかもしれない。
  • 一旦削除した項目を復活させる方法がよく分からず。電源が入っていれば再度スキャンした際にリストアップしてくれる…のかな?
  • ツールバー上のアイコンはそれほど大きくない。
  • マジックパケット送信ボタンの隣に「削除」ボタンがあるので、操作を間違えて、リストから目的のPCを削除する可能性がかなり高い…。
日本語化の仕方は、配布ページの下のほうから wakemeonlan_japanese.zip をDL。中に入っている WakeMeOnLan_lng.ini をインストールフォルダにコピーすればいい。

_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アドレスを送って登録。
  • ツールバー上のアイコンはそれほど大きくない。
WOL関係のツールというより、スキャンツールと捉えるべきなのだろうなと…。WOL云々はおまけでついてる機能、てな印象を受けた。もちろん、大量のPCを相手にして、WOL以外の操作もしたい場合は、機能が多いので便利かもしれないなと想像。

Wake on LAN for Windows を試用することに。 :

見た目が一番シンプルに思えた Wake on LAN for Windows を、しばらく試用させてもらうことに。親父さんPCに導入して、親父さんにも使い方を説明しておいた。

でも、しばらく使わなかったりすると、「なんだこのアイコンは?」状態になりそうな予感も。茶の間に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 - 備忘録

親父さんが操作できなかった。 :

親父さんから「チューナー機の電源が入らないぞ」と言われてしまった。変だな。あれだけテストしたのに…。

後ろから操作を眺めたら、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 では、わざわざその方法を選ばなくてもいいらしい。

この記事へのツッコミ

Re: Wake on LAN 関係のソフトをいくつか試用してみたり by 名無しさん    2015/12/19 19:41
TVTestにSpinelを使えば、Spinelの設定にWOLの機能があのますよ。
こちらの方が楽かも。

以上です。

過去ログ表示

Prev - 2013/11 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project