Parando sites IIS permanentemente com o PowerShell

7

Parar sites usando o Stop-Website aparentemente não é o mesmo que impedi-los de usar o Gerenciador do IIS.

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

Usando o Gerenciador do IIS, o estado é o mesmo após uma reinicialização / reinicialização. Eu acho que parar um site usando o Gerenciador do IIS modifica algum tipo de configuração persistente (o registro?).

Alguém pode me dizer como eu posso usar o PowerShell para parar um site permanentemente, para que uma redefinição / reinicialização não coloque o site on-line novamente?

(Stop-WebAppPool exibe exatamente o mesmo comportamento).

    
por Bergius 03.07.2015 / 16:23

3 respostas

8

A resposta de Joseph faz todo o sentido, mas parece que não funciona.

O atributo 'serverAutoStart' no nó do site em applicationHost.config não é alterado.

Uma maneira de mudar é:

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

mas isso é um bocado.

Outra maneira é:

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

Também é interessante que este atributo não seja diretamente editável no Gerenciador do IIS, você precisa entrar no Configuration Editor para alterá-lo.

Sim, iniciar ou interromper o site no Gerenciador do IIS altera esse atributo, mas isso não é óbvio para o usuário.

    
por 03.07.2015 / 17:31
1

Vamos tentar isso:

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

Obviamente, Default Web Site precisa ser substituído. ; -)

Eu não tenho uma configuração de laboratório de teste para isso, então deixe-me saber se funciona para você.

Há uma tonelada de opções no IIS PSProvider ... execute o seguinte para explorar um pouco mais:

    $site = Get-Item 'IIS:\sites\Default Web Site'
    $site | get-member
    
por 03.07.2015 / 16:50
0

Eu ainda não tenho o representante para comentar, então postar isso como uma resposta ...

Para que a sugestão de Joseph funcione, é necessário que Set-Item persista na alteração.

    $site = Set-Item

As 4 linhas completas para fazer com que o site padrão fique parado.

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