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.
Onde você se vira quando está gerenciando uma fazenda de servidores web IIS com potencialmente dezenas ou centenas de pools de aplicativos? 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 a seu bel-prazer.
Vamos passar por alguns exemplos de como fazer isso acontecer.
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, este não é o caso.
Para gerenciar servidores IIS remotamente, somos forçados a usar remoting do PowerShell com o cmdlet Invoke-Command
. Embora isso não seja um impeditivo, ele torna o código um pouco mais verboso do que poderia ser. Isso não é para desencorajá-lo a gerenciar servidores IIS remotos com PowerShell, mas é mais um aviso.
Relacionado: Invoke-Command: A Melhor Maneira 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.
NOTA: 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 Pools de Aplicativos do IIS com PowerShell
Para gerenciar pools de aplicativos da web, primeiro precisamos importar o módulo WebAdministration.
Isso traz todos os cmdlets do IIS e cria a unidade IIS. É aqui que a maior parte da configuração do pool de aplicativos será feita. Vamos primeiro verificar se já existem pools de aplicativos.
Criando novos pools de aplicativos do IIS com o PowerShell
Parece que eu 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 .NET runtime com o pool de aplicativos. Novamente, usando a unidade IIS, posso usar Set-ItemProperty
para gerenciar pools de aplicativos como posso fazer com o sistema de arquivos, registro, certificados e todas as outras coisas que têm uma unidade do PowerShell.
Usando Set-ItemProperty
, você pode modificar quase todas as propriedades de um pool de aplicativos.
Removendo pools de aplicativos com o PowerShell
Finalmente, terminamos com nosso pool de aplicativos e agora precisamos removê-lo. Desta vez, temos um cmdlet do PowerShell integrado chamado Remove-WebAppPool
. Basta especificar o nome e ele desaparece!
Todo este código que temos estado a utilizar foi executado localmente, mas e se precisar de executá-lo num servidor IIS remoto? É aqui que entra o PowerShell remoting. Para fazer isso, precisaremos apenas de agrupar todo este código num bloco de script e depois usar o Invoke-Command
para executá-lo no servidor remoto.
Embora não seja muito funcional, este código criaria um novo pool de aplicações chamado MyAppPool, definiria uma propriedade e depois o removeria. Você notará que estou a usar a variável $using
. Como o código no bloco de script vai ser executado num computador remoto, isso é necessário para o PowerShell expandir essa variável e usar o valor real de $appPoolName
que foi declarado localmente no nosso computador cliente.
Se quiser aprender mais sobre a gestão do IIS em geral, consulte a página de Administração IIS no Technet. Lá encontrará todos os cmdlets incluídos no módulo WebAdministration e como pode utilizá-los.