Inicie e pare os serviços do Windows usando o PowerShell

0

Estou executando o Apache (como um serviço do Windows) e o IIS 10, e gostaria de poder ativar ou desativar cada um desses serviços, já que eles capturam a porta 80 e não desejo configurá-los. para usar outra porta.

Portanto, gostaria de criar um script do PowerShell que interrompa o IIS e inicie o Apache ou vice-versa. Como posso conseguir isso?

    
por ProfK 09.11.2017 / 06:57

2 respostas

2

function Switch-Webserver {

    Param(
        [Parameter( ParameterSetName = "IIS")]
        [switch]$IIS,
        [Parameter( ParameterSetName = "Apache")]
        [switch]$Apache
    )

    switch ($PSCmdlet.ParameterSetName)
    {
        'IIS'    { get-service "Apache" | stop-service -force ; start-service IISAdmin }
        'Apache' { get-service IISAdmin | stop-service -force ; start-service "Apache" }
    }

}

você pode usar essa função no console do PowerShell assim:

Switch-Webserver -IIS # This will stop Apache and start IIS
Switch-Webserver -Apache # This will stop IIS and start Apache

Você pode colocar essa função em seu Perfil do PowerShell ou carregue-o a partir de uma janela de console como esta:

. C:\Path\To\Function\Switch-Webserver.ps1
    
por 09.11.2017 / 19:42
0

O truque é usar o argumento ao iniciar e parar serviços para que eles possam ser executados em segundo plano. Primeiro, você pode precisar instalar o serviço. Então. para graciosamente parar o apache, use isso em um script:

httpd -k graceful-stop

Basta colocar o código acima em um script e executá-lo e ele parará o apache.

Para começar, você pode ter adivinhado:

httpd -k start

Para parar e iniciar o IIS, você pode encontrar as instruções aqui .

    
por 09.11.2017 / 07:37