Precisa ficar de olho nos pools de aplicativos do seu servidor web IIS? Aqui está um guia sobre como criar um pool de aplicativos no IIS com o PowerShell.
Para gerenciar um conjunto potencialmente grande de pools de aplicativos em um servidor web IIS, para onde você se vira? Scripts do PowerShell, é claro! Ao usar o módulo WebAdministrationPowerShell, que vem instalado como parte do IIS, e um pouco de remoting do PowerShell, você pode facilmente criar, modificar e remover pools de aplicativos conforme necessário.
Vamos passar por alguns exemplos de como fazer isso.
Se você nunca usou o PowerShell para gerenciar seus servidores IIS antes, sua primeira inclinação pode ser procurar por um ComputerName
na maioria dos cmdlets. Infelizmente, esse não é o caso.
Para gerenciar servidores IIS remotamente, somos forçados a usar o remoting do PowerShell com o cmdlet Invoke-Command
. Embora isso não seja um impeditivo, ele torna o código um pouco mais longo do que poderia ser. Isso não é para desencorajar você a gerenciar servidores IIS remotos com PowerShell, mas é mais uma informação.
Relacionado: Invoke-Command: A Melhor Forma de Executar Código Remoto
I know I was pretty frustrated the first time I tried this and didn’t see that familiar ComputerName
parameter on many of the cmdlets.
OBSERVAÇÃO: Daqui para frente, estaremos construindo código para inserir em um scriptblock. Em seguida, usaremos
Invoke-Command
para executar este scriptblock no servidor IIS remoto.
Listando os Pools de Aplicativos do IIS com o PowerShell
Para gerenciar os pools de aplicativos da web, primeiro precisaremos importar o módulo WebAdministration.
Isso traz todos os cmdlets do IIS, além de criar a unidade IIS. É aqui que a maioria da configuração do pool de aplicativos será realizada. Vamos primeiro verificar se já existem pools de aplicativos.
Criando novos Pools de Aplicativos IIS com PowerShell
Parece que já tenho um chamado GHI. Talvez eu queira criar outro. Usar a unidade IIS torna isso tão fácil. Basta usar New-Item
e especificar o caminho.
Inspeção e Modificação das Propriedades do Pool de Aplicativos
I’ve now created a new app pool. We can then check all of the properties on that app pool using Get-ItemProperty
and select all of the properties it returns with Select-Object
. This will return all of the property names and values so you can get figure out which ones you need to modify with Set-ItemProperty
.
Agora que você tem um pool de aplicativos e pode ver as propriedades, vamos modificar uma propriedade. Talvez eu queira usar uma versão específica do tempo de execução do .NET com o pool de aplicativos. Novamente, usando a unidade IIS, posso usar Set-ItemProperty
para gerenciar pools de aplicativos como faço com o sistema de arquivos, registro, certificados e todas as outras coisas que têm uma unidade PowerShell.
Ao usar Set-ItemProperty
, você pode modificar quase todas as propriedades de um pool de aplicativos.
Removendo Pools de Aplicativos com PowerShell
Finalmente, terminamos com nosso pool de aplicativos e agora precisamos removê-lo. Desta vez, temos um cmdlet PowerShell integrado chamado Remove-WebAppPool
. Basta especificar o nome, e ele desaparece!
Todo esse código que temos usado foi executado localmente, mas e se você precisar executá-lo em um servidor IIS remoto? É aqui que entra o PowerShell remoto. Para fazer isso, precisaremos simplesmente agrupar todo esse código em um bloco de script e, em seguida, usar Invoke-Command
para executá-lo no servidor remoto.
Embora não seja muito funcional, este código criaria um novo pool de aplicativos chamado MyAppPool, definiria uma propriedade e, em seguida, o removeria. Você notará que estou usando a variável $using
. Como o código no bloco de script será executado em um computador remoto, isso é necessário para o PowerShell expandir essa variável e usar o valor real de $appPoolName
que foi declarado localmente em nosso computador cliente.
Se você quiser saber mais sobre a administração do IIS em geral, confira a página de Administração do IIS no Technet. Lá você encontrará todos os cmdlets incluídos no módulo WebAdministration e como usá-los.