トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

WindowsXPをリモート起動


以前から「家のWindowsPCをリモート起動したいなあ」と思ってたんですよ。
それにはWakeOnLan(WOL)に対応したネットワークカードが必要なんですが、家のPCのカードはWOLに対応してないと思って諦めてました。
そしたら。
実は対応してたということが判明したので、このたびリモート起動できるように設定してみました。

試み1:スタンバイ状態からの復帰

デバイスマネージャ→ネットワークアダプタの中にいるネットワークカードのプロパティを表示して、「電源の管理」タブで「このデバイスで、コンピュータのスタンバイ状態を元に戻すことができるようにする」のチェックをON。
OKボタンをクリックして設定を有効にし、早速PCをスタンバイ状態に。
で、ネットワークに繋がっている別のPCから、スタンバイ状態のPCに接続を試みる。
…無事スタンバイ状態から復帰。
スタンバイ状態から復帰させたいなら、WOL対応のネットワークカードのプロパティを変更するだけでいいようです。

試み2:電源OFF状態からの起動

OSが起動していない状態から起動するには、流石にOSの設定だけでは実現できません。
ネットワークカードに対して「Magic Packet」という特殊なパケットを送ってやらねばなりません。
ので、そのMagic Packetを送信するためのソフトを入手。
今回はLINUXからWindowsPCを起動するので、Wakeonlanを使いました。
ダウンロード・インストールの手順はリンク先のサイトを参照。
ちなみにMagic PacketはMACアドレスというものに対して送信しなくてはなりません。
MACアドレスはコマンドプロンプトで

ipconfig /all

とすると、「Physical Address」として表示されます。
で、LINUXからWindowsPCの起動に挑戦。
LINUXのコンソールから

wakeonlan XX:XX:XX:XX:XX:XX
※ XX:XX:XX:XX:XX:XXはMACアドレス

…あっさり成功。すげー!
これでLINUXからWindowsPCがリモート起動できるようになりました。

試み3:Webサーバから起動

さて。ここまでだと単に家の中でのリモート起動ができるだけです。
それだったらちょっと歩いてって電源スイッチ押せや、っちゅー話です。
リモートというからにはやはり外出先から電源ON。
というわけで、Webサーバから起動できるように、perlでCGIを作成。
サーバに転送し、パーミッションを755に設定して、他のPCからCGIを実行。
…はい、起動。やたー!
↓がCGIプログラムです。

#!/usr/bin/perl

$mac_addr = 'XX:XX:XX:XX:XX:XX'; #MACアドレス

#Magic Packet送信

open(FI,"|/usr/bin/wakeonlan $mac_addr");

@s = <FI>;

close(FI);

#HTML作成

print qq|Content-type: text/html\n\n|;

print qq|<html>\n<head>\n|;

print qq|<meta http-equiv="Content-Type" content="text/html;

charset=Shift_JIS">\n|;

print qq|<title>WakeOnLan</title>\n|;

print qq|</head>\n<body>\n|;

print qq|ok! please wait while booting...\n|;

print qq|</body>\n</html>\n|;

実際に動かしたCGIとは違いますが、まあだいたいこんなカンジで。

これで外出先からPCをリモートで起動できるようになりました。
例えば漫画喫茶から自宅PCを起動してリモートデスクトップ経由で遊ぶ、というようなことも可能です。
WindowsPCにはビデオキャプチャカードも付いてますので、外出先からPC起動→録画予約、ってこともできそうです。
やー、便利な世の中になりましたなあ。

{{comment_inline normal,Comment}}

TrackBack

TrackBack URL for this entry:
http://blackhair.biz/tb.cgi/WindowsXP%A4%F2%A5%EA%A5%E2%A1%BC%A5%C8%B5%AF%C6%B0

最終更新時間:2006年01月04日 17時04分44秒