はじめに
Windows10 (Home/Pro) にIISが居るらしいので有効化してついでにWSHをCGIとして動作するようにしてみた。
環境
Windows 10 Home 21H1(IIS6)
手順
IISとCGIの有効化
スタートメニュー→設定→アプリと機能を開き、オプション機能をクリック。
アプリと機能画面の下部または右側にある関連設定・Windowsのその他の機能を開く
インターネットインフォメーションサービスにチェック
Web管理ツール→IIS管理コンソールにチェック
World Wide Web サービスにチェック
アプリケーション開発機能→CGIにチェック
上画像のような状態になったことを確認し、OKを押す。
IIS機能の有効化処理が始まるため、しばらく待つ。
CGIの設定(WSHとの関連付け)
スタートメニュー→Windows管理ツール→IISマネージャーを起動
左側の接続ツリーでDefault Web Siteを右クリックし、仮想ディレクトリの追加を選択
エイリアス名と物理パスを入力(CGIスクリプトの置き場となる)
パススルー認証・接続ボタンを押し、特定のユーザーを選択し、設定ボタンを押す。
物理パスにアクセスできる権限を持ったWindowsユーザーを入力
Default Web Siteの配下に仮想ディレクトリのエントリが追加されたことを確認する
追加した仮想ディレクトリを選択し、ハンドラーマッピングを開く
ハンドラーマッピング一覧で右クリック(画面右の操作からでも可)し、スクリプト マップの追加を開く
VBSの場合、要求パスを*.vbs
にする(JScriptなら*.js
)
実行可能ファイルはC:\%windir%\System32\cscript.exe %s %s //nologo
と入力
(//nologo
を入れないとHTTPヘッダにスクリプトエンジンの起動メッセージが混入してエラーが出る)
名前は任意の値で可
Default Web Siteを右クリック→Webサイトの管理→再起動をクリックし、サイトの再起動を実施する
動作確認用のスクリプトを仮想ディレクトリに設定した物理フォルダに置く
<スクリプトの中身>
WScript.Echo "Content-Type: text/html"
WScript.Echo
WScript.Echo "If you see this, it worked."
WScript.Echo "<br>"
If WScript.Arguments.Count > 0 Then
For i = 0 To WScript.Arguments.Count - 1
WScript.Echo i + 1 & " : " & WScript.Arguments(i)
WScript.Echo "<br>"
Next
End If