Как удалить несколько виртуальных каталогов? - PullRequest
5 голосов
/ 15 марта 2012

Мне нужно удалить большое количество виртуальных каталогов, некоторые из них не имеют связанных физических каталогов.
Идеи?

Ответы [ 2 ]

5 голосов
/ 22 марта 2012

Поскольку вам нужно удалить большое количество, я предполагаю, что вы захотите использовать какую-то форму скрипта.

IIS 6.0 с использованием IISvdir.vbs ( article @ MSDN ):

В командной строке введите команду cd, чтобы перейти в каталог, в котором установлен скрипт Iisvdir.vbs. Расположение по умолчанию для этого файла - systemroot / system32 / iisvdir.vbs.

В командной строке введите:

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

Подставьте имя вашего веб-сайта и имя виртуального каталога соответствующим образом. Если в имени веб-сайта есть пробелы, используйте кавычки вокруг имени веб-сайта, как показано в предыдущем примере.

IIS 7 с использованием AppCmd.exe ( article @ TechNet ):

Чтобы удалить виртуальный каталог, используйте следующий синтаксис:

appcmd delete vdir /vdir.name: string

Переменная vdir.namestring является виртуальным путем к виртуальному каталогу.

Например, чтобы удалить виртуальный каталог с именем photos из корневого приложения сайта с именем contoso, введите в командной строке следующую команду и нажмите клавишу ВВОД:

appcmd delete vdir /vdir.name: contoso / photos

Чтобы удалить виртуальный каталог с именем photos из приложения с именем marketing на сайте с именем contoso, введите в командной строке следующую команду и нажмите клавишу ВВОД:

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

НТН

1 голос
/ 26 марта 2012

Вы также можете написать скрипт msbuild для этого и использовать пакет расширений msbuild, который доступен здесь . Я успешно использовал это, чтобы сделать то, что вы говорите, для сотен vdirs в iis 6 и в iis 7.5.

Это довольно просто, и мне понадобилось больше времени, чтобы написать файл .proj, чем выяснить, как это сделать.

веселись :) 1007 *

результирующая цель 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 определены во внешнем файле proj:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...