IIS 仮想ディレクトリを作成する VBScript( WSH )


  このスクリプトが置かれたディレクトリを仮想ディレクトリとして登録





ブラウザでダウンロード

ダウンロードした iis_vdir.lzh を解凍して、create_vdir.wsf を実行するだけで、
そのディリクトリを仮想ディレクトリとして IIS (既定の Web サイト) に登録します。

.php で、php-cgi.exe を登録します。
Root 仮想ディレクトリに 既に登録されている場合も上書きします

IIS Admin オブジェクトのリファレンスは こちら( IIsWebServer ) です。
開始・停止したい場合は、IIsWebServer オブジェクトで Start または Stop メソッドを使用します

仮想ディレクトリを作成しているのは、IIsWebVirtualDir オブジェクトです
ScriptMaps は、こちらから取る必要があります( IIsWebServer オブジェクトでは足りませんでした )

readme.txt
  

*************************************************************
■このスクリプトが置かれたディレクトリを
  仮想ディレクトリとして登録
*************************************************************

1) list_iis.wsf で、既定の Web サイトの情報を取得
2) create_vdir.wsf で作成または変更

仮想ディレクトリ名は実際のディレクトリ名が使われますが、
任意の名前にしたい場合は、22 行目の
strName = obj.Name
を
strName = "任意の名前"
に変更して下さい。

※ php の情報は strPhp = "C:\php-5.2.8-Win32\php-cgi.exe" を変更
※ 別のディレクトリで実行すると、その場所で更新になります
※ crun.vbs は外部ライブラリファイル
※ phpinfo.php は、php 実行確認用
※ check.asp は、asp 実行確認用
※ view.htm は、check.asp より #include しています

【チェック】
ディレクトリの権限で、少なくとも Users グループが登録されている必要があります
ファイルの書き込みを行う場合は、Users グループをフルコントロールにすると
問題を回避できると思います

■著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。

lightbox
  


create_vdir.wsf
  

<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>
  

関連する記事
VBScript : IIS7 の 仮想ディレクトリ登録









  表示 (HTA)




  

<SCRIPT language="VBScript">

Dim strMessage

function SetMessage( strValue )
	strMessage = strMessage & strValue & vbCrLf
end function

function DisplayClass()

	Dim IISAdminObject

	strMessage = ""

	on error resume next
	Set IISAdminObject = GetObject(document.all("AdsPath").value)
	if Err.Number <> 0 then
		document.all("Result").innerText = _
			"オブジェクトを作成できませんでした"
		exit function
	end if

	SetMessage( "名称:" & IISAdminObject.Name )
	SetMessage( "クラス名:" & IISAdminObject.Class )
	SetMessage( "スキーマ:" & IISAdminObject.Schema )
	SetMessage( "GUID:" & IISAdminObject.GUID )
	SetMessage( "親:" & IISAdminObject.Parent )
	SetMessage( "場所:" & IISAdminObject.path )
	SetMessage( "セッションタイムアウト:" & IISAdminObject.AspSessionTimeout )
	SetMessage( "スクリプトタイムアウト:" & IISAdminObject.AspScriptTimeout )
	SetMessage( "AspMaxRequestEntityAllowed:" & _
		IISAdminObject.AspMaxRequestEntityAllowed )

	document.all("Result").innerText = strMessage
	on error goto 0

end function

</SCRIPT>

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
</HEAD>
<BODY>

<TABLE>
<TR>
<TD>
	<INPUT
		type=text
		name=AdsPath
		style='width:400'
		value="IIS://localhost/W3SVC/1/Root"
	>
</TD>
<TD>
	<INPUT
		type=button
		value="クラス表示"
		onClick='DisplayClass()'
	>
</TD>
</TR>
</TABLE>

<PRE id=Result>
</PRE>

</BODY>
</HTML>
  




yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[smalltech]
claudebot
24/04/18 12:39:09
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube