Ошибка 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)

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

Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Поддержка IIS для PHP
Поддержка IIS для PHP
Эта версия PHP требует наличия C++ Redistributable для VS 2019 (как минимум)
1
0
879
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Другие вопросы по теме