| <JOB>
<OBJECT id="WshShell" progid="WScript.Shell" />
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<SCRIPT language="VBScript" src="crun.vbs"></SCRIPT>
<SCRIPT language=VBScript>
<JOB>
<OBJECT id="WshShell" progid="WScript.Shell" />
<OBJECT id="Fso" progid="Scripting.FileSystemObject" />
<SCRIPT language="VBScript" src="crun.vbs"></SCRIPT>
<SCRIPT language=VBScript>
' ***********************************************************
' 処理開始
'
' 既存の仮想ディレクトリでも、物理パスを変更可能
' ***********************************************************
' Cscript.exe で実行する
crun
' スクリプトが存在するディレクトリと名前
strCurPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path & ""
strName = obj.Name
strPhp = "C:\php-5.2.8-Win32\php-cgi.exe"
' 仮想ディレクトリのパスを「既定の Web サイト」として設定
strVDir = "IIS://localhost/W3SVC/1/Root/" & strName
' 仮想ディレクトリが既に存在するフラグ
bExist = True
on error resume next
' 仮想ディレクトリのオブジェクトを取得
Set IIsWebVDirObj = GetObject(strVDir)
if Err.Number <> 0 then
' 新規
Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")
Set IIsWebVDirObj = _
IIsWebVDirRootObj.Create("IIsWebVirtualDir", strName )
' 物理パスを設定
IIsWebVDirObj.Put "Path", strCurPath
' 新規仮想ディレクトリ
bExist = False
else
Set IIsWebVDirRootObj = GetObject("IIS://localhost/W3SVC/1/Root")
' 変更( 物理パスが変わっていても、ここでセットされる )
IIsWebVDirObj.Put "Path", strCurPath
end if
on error goto 0
' ルートの仮想ディレクトリのマッピングに追加して PHP を使用できるように構成
strMap = ""
bTarget = False
For each value in IIsWebVDirRootObj.ScriptMaps
strCheck = Ucase((Split( value, "," ))(0))
if strCheck = ".PHP" then
strMap = strMap & vbTab & ".php," & strPhp & ",5,GET,POST"
bTarget = True
else
if strMap <> "" then
strMap = strMap & vbTab
end if
strMap = strMap & value
end if
Next
if Not bTarget then
strMap = strMap & vbTab & ".php," & strPhp & ",5,GET,POST"
end if
IIsWebVDirObj.Put "ScriptMaps", Split(strMap,vbTab)
' .asp ファイルの実行を許可
IIsWebVDirObj.Put "AccessScript", True
' 実行可能ファイルの実行を許可
IIsWebVDirObj.Put "AccessExecute", True
' クライアントが要求したリソースに対するアクセス
IIsWebVDirObj.Put "AccessSource", True
IIsWebVDirObj.Put "AccessRead", True ' 読み取り
IIsWebVDirObj.Put "AccessWrite", True ' 書き込み
IIsWebVDirObj.Put "EnableDirBrowsing", True ' ディレクトリの参照
' ログファイルに書き込むかどうか( False で書き込む )
IIsWebVDirObj.Put "DontLog", False
' このリソースに索引を付ける
IIsWebVDirObj.Put "ContentIndexed", False
' インプロセス (0)、アウトプロセス (1)、またはプロセスプール内 (2)
' 2 が 中なので注意
IIsWebVDirObj.AppCreate2 2
' アプリケーションの名前
IIsWebVDirObj.Put "AppFriendlyName", "php実行可能ディレクトリ"
IIsWebVDirObj.Put "AspAllowSessionState", True ' セッション有効
IIsWebVDirObj.Put "AspSessionTimeout", 20 ' セッションタイムアウト(分)
IIsWebVDirObj.Put "AspBufferingOn", True ' バッファ処理
IIsWebVDirObj.Put "AspEnableParentPaths", True ' ..\ 表記を使用可能
IIsWebVDirObj.Put "AspScriptTimeout", 90 ' スクリプトタイムアウト(秒)
' 既定のドキュメントを読み込むようにする
IIsWebVDirObj.Put "EnableDefaultDoc", True
' 既定のドキュメント
IIsWebVDirObj.Put "DefaultDoc", "index.htm,index.html,index.php"
' ASP ファイルをキャッシュしない
IIsWebVDirObj.Put "AspScriptFileCacheSize", True
' 書き込み
IIsWebVDirObj.SetInfo
if bExist then
Wscript.Echo "仮想ディレクトリ " & strName & " を変更しました"
else
Wscript.Echo "仮想ディレクトリ " & strName & " を作成しました"
end if
</SCRIPT>
</JOB>
| |