Ошибка WMI / PowerShell: почему CreateSite внезапно создает * два * сайта?

У меня есть простой сценарий PowerShell, который использует WMI для создания веб-сайта на Vista. Да, я знаю, что в PowerShell есть поставщик IIS для работы с IIS 7, но этот сценарий также должен поддерживать IIS 6.0, что исключает это.

Как бы то ни было, скрипт работал просто отлично, но внезапно (и я имею в виду, что буквально я сделал нулевые изменения кода в скрипте) он начал создавать второй сломанный сайт для каждого вызова метода CreateNewSite. Ниже приведен сценарий. У кого-нибудь есть идеи?

$path = "C:\My Path\WebSite"
$site = "TestSite"
$hostHeader = "demo.blah.com"

$service = Get-WmiObject -namespace "root\MicrosoftIISv2" -class "IIsWebService"

$bindingClass = [wmiclass]'root\MicrosoftIISv2:ServerBinding'
$bindings = $bindingClass.CreateInstance()
$bindings.IP = ""
$bindings.Port = "80"
$bindings.Hostname = $hostHeader

$result = $service.CreateNewSite($site, $bindings, $path)

Этот сценарий был просто создать сайт с именем «тестовый сайтом», но теперь это также создание сайта под названием «SITE_1786339847» (изменения числа, но это всегда похоже на то). Я прошел через скрипт, выполняющий по одной строке за раз, и ни один сайт не создается, пока не будет вызван метод CreateNewSite. WMI просто глючит?

11.12.2008 20:02:48
1 ОТВЕТ
РЕШЕНИЕ

Ой, ответил на мой собственный вопрос. Я проверил необработанный файл конфигурации IIS 7.0 и обнаружил потерянный виртуальный каталог, связанный с сайтом с идентификатором 1786339847. Когда я удалил этот виртуальный каталог из файла конфигурации, сценарий снова начал работать правильно.

Если кто-нибудь сталкивается с чем-то похожим, перед удалением IIS Manager захватите идентификатор сайта для плохого сайта, а затем откройте C: \ Windows \ system32 \ inetsrv \ config \ applicationHost.config. Сканируйте файл на предмет этого идентификатора и ищите любые осиротевшие ссылки на него. Сначала убедитесь, что у вас есть резервная копия.

1
18.05.2009 18:58:37