忍者ブログ

[PR][]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

遠隔で再起動[コンピュータ]

しぃちゃっとは、たまに暴走するので、マシンを再起動する必要が出てくる。外出しているときにも再起動をするにはどうしたらよいか調べた。

WebRemoteというソフトを使うと、Webブラウザから再起動ができる。ただ、ほかにも機能があるせいで、再起動を選ぶまでが少々面倒だ。それに、携帯電話からでも再起動したいのに、V401SHでは画面を出すことができなかった。別の手段を考えるとするか。

まずは、Windowsを再起動させるコマンドについて調べた。Windows XPならshutdown.exeがあるが、再起動させたいのは、あいにくWindows 2000だ。さらに調べると、簡単なVBスクリプトで代用できることがわかったので、それを使うことにした。さて、これをどう実行するか。SSIでやろうとしたら、V401SHでは無理だった。そこで、Perlを使った単純なCGIにしたら成功した。マシンの目の前でやったので、リモートで再起動させた実感がないけれど、外出先でも同じことができると考えると、なんかすごい。

ここまでやり出すと、しぃちゃっとのWebサーバでは対応できなくなってくるので、WebサーバはApacheにしている。Webサーバとお絵描きチャットを分けておくことによって、共倒れも防げる。というより、そうしておかないと、再起動がきちんとできない可能性が高い。

あとは、ルータの問題が解決しないことには運用ができない。

追記:
再起動するVBスクリプトについて。reboot.vbsというファイル名で、以下のスクリプトを作成する。

Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")

For Each objSystem In objSystemSet
objSystem.Win32Shutdown 2
Next
次に、reboot.cgiというファイル名で、以下のCGIスクリプトを作成。
#!C:\Perl\bin\Perl ←C:\Perl\binは、Perl.exeがある場所を指定

print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>再起動</title>\n";
print "</head">\n";
print "<body>\n";
print "<p>再起動します。</p>\n";
system "reboot.vbs";
print "</body>\n";
print "</html>\n";

reboot.vbsとreboot.cgiを、CGIが実行できるディレクトリに置いて、reboot.cgiにアクセスすると、サーバマシンが再起動する。これだと、いきなり再起動してしまうので、パスワードでの認証などを入れたほうがよい。

PR
コメント
コメントの投稿
未記入の場合は「ななし」になります

任意

任意



未記入の場合は、投稿後に修正ができません

トラックバック
トラックバックURL

< 新しい記事 | ホーム | 古い記事 >