如何删除多个虚拟目录?

问题描述:

我需要删除大量的虚拟目录,其中一些没有关联的物理目录。
想法?如何删除多个虚拟目录?

由于您需要删除大量,我猜你会想要使用某种形式的脚本。

IIS 6.0,使用Iisvdir.vbs(article @ MSDN):

在命令提示,使用cd命令改为安装了Iisvdir.vbs将脚本的目录。此文件的默认位置是systemroot/system32/iisvdir.vbs。

在命令提示符下,键入:

cscript iisvdir.vbs /delete "Sample Web Site" VirtualDirectoryName.

用您的网站名称和虚拟目录名称为合适。如果网站名称中有空格,请在网站名称周围使用引号,如上例所示。

要删除虚拟目录,使用以下语法:

appcmd delete vdir /vdir.name: string

可变vdir.namestring是虚拟的虚拟路径

使用AppCmd.exearticle @ TechNet)IIS目录。

例如,要删除一个虚拟目录名为照片,从一个名为contoso站点的根应用,在命令提示以下,然后按ENTER键:

appcmd delete vdir /vdir.name: contoso/photos

要删除虚拟从一个名为contoso的网站名为Marketing的应用程序命名的目录的照片,请在命令提示符下键入以下,然后按ENTER键:

appcmd delete vdir /vdir.name: contoso/marketing/photos

HTH

+0

无法获取这些命令工作,什么工作是添加一个尾随斜线。 'appcmd delete vdir'默认网站/ My_Virtual_Dir /''会起作用,如果你删除了尾部的斜杠,它就不起作用。 – Wotuu 2014-02-05 14:21:29

您也可以编写一个msbuild脚本来执行此操作,并使用可用的msbuild扩展包here。我已经成功地用它来完成你对iis 6和iis 7.5中100多个vdirs的描述。

它非常简单,花了我更多的时间去编写.proj文件,而不是去弄清楚如何去做。

玩得开心:)

产生的MSBuild的目标会像下面

<Target Name="IIS7VirtualDirectories:Delete"> 
    <MSBuild.ExtensionPack.Web.Iis7Application 
     TaskAction="Delete" 
     Website="%(Application.WebsiteName)" 
     Applications="@(Application)" 
     MachineName="$(MachineName)" 
     ContinueOnError="false"/> 

    <MSBuild.ExtensionPack.Web.Iis7Website 
     TaskAction="DeleteVirtualDirectory" 
     Name="%(VirtualDirectory.WebsiteName)" 
     VirtualDirectories="@(VirtualDirectory)" 
     ContinueOnError="false" 
     MachineName="$(MachineName)"/>  
    </Target> 

下应用程序和VirtualDirectory在外部凸出文件:定义