サンプル
注意:このページのリンクはCmdHttpd経由でアクセスしていない場合には動作しません
閲覧の例
閲覧する単純な例としては,
ワークスペース内の test.txt をみるために,
相対パスで
/view/test.txt,
絶対パスでの
c:/boot.ini をみるために
/view/c:/boot.ini
のようにします.
単純な実行の例[標準入出力タイプ]
実行する単純な例としては ipconfig.exe を実行するために
/exec/ipconfig,
つぎに ipconfig /all を実行するために,
/exec/ipconfig?/all
です.
ただし,dir のような実行ファイルではないものは
/exec/dirとしても実行できません.
この場合には,バッチファイルを使うか,
cmd.exe /c を使って
/exec/cmd?/c%20dir%20c:
としてください.(%20は空白)
単純な実行の例[GUIタイプ/ユーザーに非表示]
プログラムをキックしたい場合として,shutdown.exe を実行したいのなら,
/kick/shutdown.exe
としてください.(注意: 本当にシャットダウンします)
単純な実行の例[GUIタイプ]
単純な例としてユーザーにいじられても無害なGUIプログラムの
cdmesg.exe をユーザーの作業している画面で実行するには,
/guikick/cdmesg.exe,
ログイン画面で実行するには,
/notify/cdmesg.exeと
実行します.
前者の動作を確認するには cmdhttpd.exe が動いている端末に
誰かがログインする必要があります.
後者の動作を確認するには,ログイン前のログイン画面にするか,
Ctrl-Alt-Delを押した画面かロックしてる画面にする必要があります.
/guikick/cdmesg.exe?%22the_title%22%20%22message_contents%22
というように引数をつけて実行もてきます.
バッチファイルの実行の例[標準入出力タイプ]
GET で
/exec/sample.cmd?printenv.plにアクセスすると,
ワークスペース内にある sample.cmd の実行結果が得られます.
ただし,IE の処理の関係で,Content-Type が text/plain なのに
ファイルをダウンロードしたように見えるかもしれませんが,
その際にはいったん保存して,notepad 等で開いて確認してください.
CMD> sample.cmd printenv.pl
と同様に結果が得られています.
ソースをみたければ,exec/ を view/ にかえて,
/view/sample.cmdにアクセスしてください.
perlスクリプトの実行の例 [標準入出力タイプ]
自作スクリプトを書くこともできます.
たとえば,標準入力の内容と環境変数を
返すperlスクリプトとして
#!/usr/local/bin/perl
while(){
print "(STDOUT)";
print $_;
last if($_ eq "");
}
foreach $i (keys %ENV){
print STDERR "(STDERR) ENV: $i:$ENV{$i}\n";
}
exit;
のようなコマンドが可能です.
GET で
/exec/perl.exe?printenv.pl とアクセスする場合と,
以下のように POST でアクセスする場合を比べてみてください.
ただし,perl がインストールされていないと動きません.
また,IE などでは Content-Type よりも拡張子で
ファイルタイプを判断するようなので,
説明のために dummy.txt を URL に含めています.
なお,URLの説明のように
perl スクリプトなので,
/perl/printenv
と指定しても動きます.
アップロードの例
アップロードは次のように upload/upload.txt に POST することで
行います.
確認は,
/view/upload.txtにアクセスしてください.
危険な例
GUIタイプとしてもコマンドラインプログラムは実行できますが,
/guikick/perl.exe?wait30sec.plにアクセスすると,
コマンドラインのウィンドウがユーザーのデスクトップに出てきます.
このウィンドウはサービスの権限なので操作されると危険です.
(wait30sec.pl は30秒待って終了するプログラムです)
実行結果が不要で標準入力が必要ない,
もしくは常駐させたいコマンドラインプログラムを
キックするときに利用したいときには,ユーザーの目に触れないように
/kick/perl.exe?wait30sec.plとしてアクセスした方が安全です.