IIS で バッチファイル を実行する 方法

0 件のコメント

IIS に ホストされた バッチファイル を クライアント から 実行できるようにする方法を記載します。 今回はあくまで "技術的にできる" の検証です。。

バッチファイルが実行できると…何でもできてしまいかねない(セキュリティーホール)になるので、利用には気をつけてください。 IIS の 実行ユーザー は制限がかかっているので、すぐに何でもできるわけではないですが要注意です。

目次

IIS の 設定

バッチファイルの実行には CgiModule が必要になるので、まずはインストールされていることを確認します。

  1. 「プログラムと機能」を開く
  2. [Windows の機能の有効化または無効化] を選択く
  3. [インターネット インフォメーション サービス]-[World Wide Web サービス]-[アプリケーション開発機能]-[CGI] が選択されていることを確認

上記 CGI がインストール済みである前提で、IISの設定を行っていきます。

  1. 実行したいバッチを保存した仮想ディレクトリを選択
  2. 「機能ビュー」から [ハンドラー マッピング] を選択
  3. 「操作」パネル から [スクリプト マップの追加] を選択
  4. 「スクリプト マップ の追加」で以下の設定して [OK] を選択
    要求パス
    *.bat
    実行可能ファイル
    %windir%\system32\cmd.exe /c %s %s
    名前
    (任意の名称)
  5. 「スクリプト マップの追加」ダイアログで[はい] を選択
  6. 「ハンドラー マッピング」のリストに追加されたことを確認

スクリプトの実装と配置

  1. 以下のようなサンプルスクリプトを作成

    ※html要素の < および > はシェルでは特殊記号と認識されるため、ハット(^)を併用して記載します。

    run.bat

    @echo off
    echo Content-Type: text/html
    echo.
    echo.
    echo Hello, World!
    echo ^<pre^>   
    set
    echo ^</pre^>
    exit
    
  2. サンプルスクリプトを仮想ディレクトリに配置

テスト

  1. IE を使って スクリプトファイル へ アクセス
    ここでは、http://localhost/sample/run.bat へアクセスしました。

参考記事