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://www.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秒