É possível reciclar um pool de aplicativos do IIS7 na linha de comando, em uma máquina diferente?
Encontrei APPCMD ( appcmd recycle apppool my-app-pool
), mas ele só opera no host em que é executado, o AFAICT.
Ouvi um boato de que poderia haver uma maneira de fazer isso com o Powershell, mas não sei nada sobre isso, e aparentemente não sou muito bom em pesquisar no Google.
Estou usando o Vista / Server 2008, se isso importa.
EDIT: Encontrei algo chamado WinRM que alguém afirma ser capaz de executar o APPCMD, mas ainda não sei exatamente como.
Psexec \\computer c:\windows\system32\inetsrv\appcmd.exe" recycle apppool AppPoolName
Para fazer isso remotamente no PowerShell, você precisa usar o PowerShell remoting ou usar o WMI.
Na verdade, é muito simples usar o cmdlet Invoke-WMIMethod PowerShell, mas você precisa especificar
-Authentication PacketPrivacy
... e se precisar especificar credenciais diferentes, você pode fazer isso com o parâmetro-Credential (Get-Credential)
... aqui está um exemplo:Eu escrevi uma boa função para encerrar tudo isso: http://poshcode.org/2466
fonte
Se a linha de comando é a sua escolha, o PsExec parece ser a solução, mas para tarefas críticas, eu não recomendaria. O motivo é o seguinte: O PsExec tem problemas com várias execuções.
Eu prefiro usar a API para esses fins.
fonte
Semelhante à resposta de @ Jeff, com o Powershell remoting seria:
Enter-PSSession -ComputerName <your server> -Credential <username, or (Get-Credential)>
Em seguida, na sessão interativa, então:
appcmd recycle apppool my-app-pool
para reiniciar o pool de aplicativos.
fonte
Reciclar o AppPool no PowerShell
Neste exemplo: MSExchangeSyncAppPool
fonte