Cmdlets do PowerShell IISAdministration

por Baris Caglar

Compatibilidade

Versão Observações
IIS 10.0 Os cmdlets do PowerShell IISAdministration foram introduzidos no IIS 10.0. Há suporte para a última versão do IISAdministration por meio da galeria do Powershell.
IIS 8.5 e versões anteriores Não havia suporte para cmdlets do PowerShell IISAdministration antes do IIS 10.0. No entanto, os usuários podem instalá-lo por meio da galeria do PowerShell.

Visite iis.net para saber mais sobre como obter a última versão do IISAdministration.

Visão geral do IISAdministration

Com o Windows 10 e o Windows Server 2016, a equipe do IIS está lançando um módulo IISAdministration novo e simplificado, lado a lado com os cmdlets de WebAdministration existentes. Há muitos motivos por trás da decisão de lançar um módulo de cmdlet totalmente novo do PowerShell e aqui estão alguns deles:

  • IISAdministration dimensionará melhor em scripts que levam muito tempo para serem executados com WebAdministration.
  • Agora você pode obter uma referência direta a uma instância do objeto Microsoft.Web.Administration.ServerManager e fazer qualquer coisa que possa fazer no namespace Microsoft.Web.Administration junto com seus scripts.
  • A compatibilidade de pipeline do PowerShell foi a força de condução por trás do design de muitos cmdlets. Dessa forma, IISAdministration funciona muito melhor com o pipeline do PowerShell.

A versão dos Cmdlets que foi lançada para o Windows 10 foi uma versão aproximada com espaço para melhorias; a versão de destino foi o Windows Server 2016 para o produto concluído e polido. O motivo para a liberação antecipada foi obter comentários de usuários reais do PowerShell e administradores do IIS no setor, responder a qualquer pergunta e receber sugestões não apenas sobre a funcionalidade existente, mas também potencialmente sobre novas funcionalidades que nossos usuários gostariam na Administração do IIS no contexto do PowerShell.

Veja alguns exemplos sobre o uso do novo provedor:

Pipeline

PS:>Get-IISConfigSection -SectionPath "system.webServer/defaultDocument" | Get-IISConfigCollection -CollectionName "files" | New-IISConfigCollectionElement -ConfigAttribute @{"Value" = "MyDefDoc.htm"}

Get-IISConfigSection está no início da maioria dos pipelines e, no exemplo específico acima, primeiro obtemos a seção "system.webServer/defaultDocument" (diferencia maiúsculas de minúsculas!), depois obtemos a coleção de arquivos e, por fim, obtemos um elemento de coleção com o valor de atributo fornecido.

PS:>$ConfigSection = Get-IISConfigSection -SectionPath "system.applicationHost/sites"

PS:>Get-IISConfigCollection $configSection | Get-IISConfigCollectionElement -ConfigAttribute @{"Name"="Default Web Site"} | Get-IISConfigAttributeValue -AttributeName "State"

Esse é mais um exemplo híbrido em que a seção é colocada primeiro em uma variável e, em seguida, usada no pipeline.

Comandos simples

O número de comandos simples é muito reduzido para alguns. Os exemplos incluem Get-IISSite e Get-IISAppPool. Outras operações simples para as quais os comandos não existem podem ser executadas por meio de operações de pipeline.

PS:> Get-IISAppPool

Name            Status   CLR Ver  Pipeline Mode  Start Mode
----            ------   -------  -------------  ----------
DefaultAppPool  Started  v4.0     Integrated     OnDemand

Get-IISServerManager

PS:>$sm = Get-IISServerManager

PS:>$sm.ApplicationPools["DefaultAppPool"].Recycle()

Como você pode ver, depois de ter acesso ao gerenciador do servidor, o céu é o limite.

Start-IISCommitDelay / Stop-IISCommitDelay

Ao colocar suas operações entre esses comandos, você pode garantir que suas alterações sejam confirmadas ao mesmo tempo.

Esses são apenas alguns exemplos do que você pode fazer com o novo provedor. Visite o Documento online para obter a documentação completa e mais exemplos.