私は仕事で MS-Windows を使って開発をやっています. まぁこいつにはいろいろと愚痴はあるんですが, その中によくお亡くなりになるということがあります. ネットワーク越しに ping をかけてみると, ちゃんと返ってくるので マシン自体は生きてるんだけど, マウスかディスプレイドライバが死んで 画面が動かせないようです.
これが unix だったら rlogin して kill なり shutdown して安全に マシンを落せるんだけど, Windows の場合それができません. なんとかならないかな〜と思っていたら, こちらの方に shutdown.exe という NT のシャットダウンコマンドを発見しました.
これを利用すると, ネットワーク越しのポートを用意して, そこから ID とパスワードを打ち込むと, shutdown.exe が起動されるようなものを 作るだけでよさそうです.
ってわけで作ってみたのが これ (DLL 版: 28672 byte) です.
shutdown.exe 以外何に使えるんだろうという疑問は残りますが, 一応 他のコマンドも起動可能にしてます.
netcmd を初めて起動すると, 設定ファイルがありませんから, 次のような ダイアログが現れます.
設定項目ですが...
この後, [設定] ボタンを押すと, 設定ファイルが実行ファイルと同じディレクトリに 保存されます.
利用の方法ですが, 適当なターミナルで
% telnet コンピュータ名 3500と打ち込みます (ターミナルソフトによっては設定の中にポート指定の項目があります). なお説明するまでもありませんが, 「コンピュータ名」 は netcmd が動いてるもの, 3500 は上記の手順 3 で指定した番号です. ID とパスワードを聞かれますので上記の手順 2 で設定した ID とパスワードを入力 してログインします. ログインに成功すると 5 秒後に手順 1 で指定したコマンドを実行します.
一つだけ Windows について愚痴を言わせてもらえば, アクティブなウィンドウが必ず前に出るのはなんとかしてほしいっすね. 表面に資料を表示させて, 裏で半分隠れているエディタを操作するとか したいじゃないですか. なんで出来ないの? こんなもん, 設定で個人の好みに合わせるべきものじゃないの?
探してみると, 一応それっぽいのがあったんだけど, 使ってみると, すべてのツール (Windows) がそうなるわけじゃないので, 操作性に統一性がなくなり, 逆に使いにくくてやめました.