我需要删除大量的虚拟目录,其中一些没有相关的物理目录 想法?
答案 0 :(得分:5)
由于你需要删除大量的内容,我猜你会想要使用某种形式的脚本。
IIS 6.0 ,使用IISvdir.vbs(article @ MSDN):
在命令提示符下,使用cd命令切换到安装Iisvdir.vbs脚本的目录。此文件的默认位置是systemroot / system32 / iisvdir.vbs。
在命令提示符下,键入:
cscript iisvdir.vbs /delete "Sample Web Site" VirtualDirectoryName.
根据需要替换您的网站名称和虚拟目录名称。如果网站名称中有空格,请在网站名称周围使用引号,如上例所示。
使用AppCmd.exe(article @ TechNet)IIS 7 :
要删除虚拟目录,请使用以下语法:
appcmd delete vdir /vdir.name: string
变量vdir.namestring是虚拟目录的虚拟路径。
例如,要从名为contoso的站点的根应用程序中删除名为photos的虚拟目录,请在命令提示符处键入以下命令,然后按Enter:
appcmd delete vdir /vdir.name: contoso / photos
要从名为contoso的站点中名为marketing的应用程序中删除名为photos的虚拟目录,请在命令提示符处键入以下命令,然后按Enter:
appcmd delete vdir /vdir.name: contoso / marketing / photos
HTH
答案 1 :(得分:1)
您也可以编写一个msbuild脚本来执行此操作并使用可用的msbuild扩展包here。我已成功地使用它来完成你在iis 6和iis 7.5中为100多个vdir所说的内容。
它非常简单,编写.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>
在外部项目文件中定义Application和VirtualDirectory:)