IIS 5.1:以编程方式创建虚拟子目录

时间:2010-09-29 20:18:08

标签: iis vbscript automation

背景

我正在尝试根据现有虚拟目录及其子目录的位置自动创建虚拟目录。

示例:

C:\网站已\父\ NewVirtualDirectories

其中Parent是虚拟目录,NewVirtualDirectories包含任何自动虚拟目录。

问题

使用以下代码:

Option Explicit
Dim args, strComputer, strVdirName, strVdirPath, objVdir, objIIS, objWebSite

Set args = WScript.Arguments

strComputer = "localhost" 
strVdirName = args(1) 
strVdirPath = args(0) 

Set objIIS = GetObject("IIS://" & strComputer & "/W3SVC/1") 
Set objWebSite = objIIS.GetObject("IISWebVirtualDir","Root/Parent") 
Set objVdir = objWebSite.Create("IISWebVirtualDir",strVdirName) 
objVdir.AccessRead = True 
objVdir.Path = strVdirPath 
objVdir.AppCreate (True) 
objVdir.SetInfo 

WScript.Quit

我可以在Parent下创建子项,但它们直接显示在父项下。我需要它们在子文件夹中。

我得到:http://localhost/Parent/NewSite

我想:http://localhost/Parent/NewVirtualDirectories/NewSite

我试过

Set objWebSite = objIIS.GetObject("IISWebVirtualDir","Root/Parent/NewVirtualDirectories") 

但NewVirtualDirectories不是虚拟目录(我不希望它),所以我收到错误。当我在IIS管理器中手动执行此操作时,我可以获得所需的效果,但我无法弄清楚如何自动化它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

修改

对于那些面临类似问题的人,我找到了很好的VBScript-ing资源

http://www.cruto.com/resources/vbscript/vbscript-examples/vbscript-sitemap.asp


经过多次挖掘(试错)后,我才弄清楚了。

通过将现有文件夹引用为 IISWebDirectory ,我可以选择它,然后创建应用程序而无需创建虚拟目录。

Option Explicit
Dim args, strComputer, strVdirName, strVdirPath, objVdir, objIIS, objWebSite

Set args = WScript.Arguments

strComputer = "localhost" 
strVdirName = args(1) 
strVdirPath = args(0) 

Set objIIS = GetObject("IIS://" & strComputer & "/W3SVC/1") 
Set objVdir = objIIS.GetObject("IISWebDirectory","Root/Parent/NewVirtualDirectories/" + strVdirName)
objVdir.AccessRead = True 
objVdir.AccessScript = True 
objVdir.AppFriendlyName = strVdirName 
objVdir.AppCreate (True) 
objVdir.SetInfo 

WScript.Quit