Назад | Перейти на главную страницу

Остановка веб-сайтов IIS навсегда с помощью PowerShell

Остановка веб-сайтов с помощью Stop-Website, очевидно, не то же самое, что остановка их с помощью диспетчера IIS.

Stop-Website 'Some site'
iisreset.exe
# site is started again

При использовании диспетчера IIS состояние остается прежним после сброса / перезагрузки. Я предполагаю, что остановка сайта с помощью диспетчера IIS изменяет какую-то постоянную конфигурацию (реестр?).

Может ли кто-нибудь сказать мне, как я могу использовать PowerShell для постоянной остановки сайта, чтобы при сбросе / перезагрузке сайт снова не был в сети?

(Stop-WebAppPool демонстрирует точно такое же поведение.)

Ответ Джозефа имеет смысл, но, похоже, он не работает.

Атрибут serverAutoStart на узле сайта в applicationHost.config не изменено.

Один из способов изменить:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']" -name "serverAutoStart" -value "False"

но это полный рот.

Другой способ:

Set-ItemProperty "IIS:\Sites\Default Web Site" serverAutoStart False

Также интересно, что этот атрибут не редактируется напрямую в диспетчере IIS, вам нужно войти в Configuration Editor чтобы изменить это.

Да, запуск или остановка сайта в диспетчере IIS изменяет этот атрибут, но это не очевидно для пользователя.

Попробуем это:

    $site = Get-Item 'IIS:\sites\Default Web Site'
    $site.serverAutoStart = $False
    $site.Stop()

Очевидно, Default Web Site необходимо заменить. ;-)

У меня нет испытательной лаборатории для этого, поэтому дайте мне знать, работает ли она для вас.

В IIS PSProvider есть множество опций ... запустите следующее, чтобы изучить немного больше:

    $site = Get-Item 'IIS:\sites\Default Web Site'
    $site | get-member

У меня еще нет представителя, чтобы прокомментировать, поэтому отправляю это как ответ ...

Чтобы предложение Джозефа заработало Set-Item необходим для сохранения изменений.

    $site = Set-Item

Полные 4 строки, чтобы сделать сайт по умолчанию остановленным.

    $site = Get-Item 'IIS:\sites\Default Web Site'
    $site.serverAutoStart = $False
    $site.Stop()
    $site = Set-Item