IIS: Habilite o gerenciamento remoto do IIS

Você pode usar a comunicação remota do Windows PowerShell para agilizar a habilitação do gerenciamento remoto a partir de um servidor remoto.

Jason Helmick

Você sempre quis gerenciar um servidor IIS, altere sua configuração ou remotamente adicionar um site simples — e fazê-lo de um local remoto? Por razões óbvias de segurança você não pode apenas abrir o IIS Manager e se conectar a um servidor remoto. Cada servidor IIS que você pretende gerenciar deve ter gerenciamento remoto habilitado, configurado e atribuído um certificado para HTTPS.

Habilitação IIS remoto usando o gráfico IIS Manager de gestão é rápido e fácil, mas só se você estiver sentado no servidor Web ou usando o Remote Desktop Protocol (RDP). Se você tiver vários servidores Web que precisam de gerenciamento remoto, ou se, como eu, você estiver usando o Server Core — o GUI IIS Manager não é prático ou mesmo possível.

Você pode habilitar o gerenciamento remoto em qualquer número de servidores Web remotos usando o Windows PowerShell. Você será capaz de fazer isso como muitos servidores Web como você precisa, ao mesmo tempo. Você vai usar o Windows PowerShell com uma característica especial chamada arquitetura de comunicação remota do Windows PowerShell.

Você terá que ativar o Windows PowerShell remoting em todos os servidores IIS. Não há nenhuma maneira de evitar isso. A melhor maneira para habilitar a comunicação remota é através de um grupo diretiva GPO (objeto). Se você não sabe fazer isso ou precisa de mais informações sobre o processo, confira o eBook gratuito, "segredos do PowerShell Remoting," por Don Jones e Dr. Tobias Weltner.

Antes que você diga, "Eu não tenho permissão para fazer isso," sentar e ler este guia. Configurá-lo em um ambiente de teste e convide seus amigos de segurança para examiná-lo e obter permissão para permitir a comunicação remota. Se servidores Web estão em execução no Windows Server 2012, você já tem o sistema de interação remota habilitado. Se não, você terá que completar este antes de tentar os passos descritos aqui.

Comunicação remota do Windows PowerShell é completamente segura e você vai precisar dele para várias tarefas de gerenciamento relacionadas ao IIS no futuro. O processo para habilitar o gerenciamento remoto não é complicado, mas há várias etapas. Aqui está o que esperar:

  1. Criar uma sessão do Windows PowerShell para cada um dos servidores
  2. Instalar o serviço de gerenciamento do IIS Web (WMSvc)
  3. Habilitar o IIS WMSvc
  4. Inicie o IIS WMSvc
  5. Substituir o certificado temporário
  6. Conectar usando o IIS Manager

Neste exemplo, eu vou habilitar o gerenciamento remoto em quatro servidores do IIS chamado Web1, Web2, Web3 e Web4 — tudo ao mesmo tempo. Depois de fazê-los trabalhar, eu vou substituir o certificado temporário com um certificado confiável de serviços de certificado do Active Directory (AD CS).

1. Criar sessões de comunicação remota do Windows PowerShell para servidores Web

O primeiro passo é criar uma sessão de comunicação remota do Windows PowerShell para servidores Web. Comece criando uma variável "$Servers" que contém os nomes de computador dos servidores Web. Em seguida, criar e armazenar as sessões em uma variável "$Sessions":

PS> C:\> $Servers = 'web1', 'web2', 'web3', 'web4' PS> C:\> $Sessions = New-PSSession –ComputerName $Servers

Você vai precisar de duas variáveis durante todo o processo. Don' t tentar encurtar este para uma única linha de comando. Você poderia preencher o $Servers de um arquivo de texto, o arquivo CSV ou o Active Directory usando o cmdlet Get-ADComputer, mas isso é outro assunto.

2. Instalar o IIS WMSvc

O IIS WMSvc é um componente adicional, que você precisará adicionar o IIS. Usando as sessões de comunicação remota, Windows PowerShell facilita isso (a primeira linha não será necessária se você estiver usando o Windows Server 2012):

PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Import-Module ServerManager} PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

Neste ponto, você instalou o IIS WMSvc. Habilitando o serviço é o próximo passo.

3. Habilitar o IIS WMSvc

As configurações padrão para o serviço de gestão são definidas para permitir que as credenciais do Windows, usar porta 8172 e aplicar um certificado temporário. Use essas configurações para agora e alterar o certificado temporário para uma confiável no final deste processo. Para habilitar o serviço de gerenciamento, altere uma chave do registro nos servidores Web remotos:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}

Agora que o serviço de gerenciamento é habilitado, você pode ter iniciado.

4. Inicie o IIS WMSvc

O IIS WMSvc não é iniciado por padrão. Na verdade, o serviço é definido para inicialização manual. Se você reiniciar um servidor de Web no futuro, o serviço de gestão não será iniciado. Alterar o tipo de inicialização para automático e inicie o serviço:

PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic} PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

Neste ponto, o serviço de gerenciamento está funcionando e você pode gerenciar remotamente servidores Web usando o IIS Manager. O único problema é que o certificado utilizado é temporária e não confiável, então substitua esse certificado por uma confiável.

5. Substituindo o certificado temporário

Há muitas opções para substituir o certificado temporário, incluindo o novo recurso do IIS 8 de certificados no armazenamento de certificados do Central. Este é o meu favorito.

Eu vou passar pelo processo breve de copiar e instalar um novo certificado de um arquivo PFX e definindo as ligações de site da Web para o novo certificado. Este exemplo tem um certificado curinga no meu computador local C:\_.Company.loc.pfx. Primeiro, copie o certificado (arquivo PFX) para os servidores de Web remotos e, em seguida, utilize o CertUtil.exe para instalar o certificado:

PS C:\> $Servers | Foreach-Object {Copy-Item -Path C:\_.Company.loc.pfx -Destination "\\$_\c$"} PS> c:\> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\_.company.loc.pfx}

Observe que eu mandei a senha em texto não criptografado. Comunicação remota do Windows PowerShell é completamente seguro e criptografado. Depois que o certificado está instalado, é importante lembrar-se de excluir o arquivo PFX de servidores Web:

PS> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\_.Company.loc.pfx"}

Neste ponto, você vai precisar a impressão digital do certificado instalado e você precisará alterar a vinculação para o serviço de gerenciamento. Para fazer isso, você vai precisar do provedor IIS. Comece carregando o módulo WebAdministration nos servidores Web remotos:

PS C:\> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Obter o certificado de impressão digital para fazer uma nova ligação:

PS C:\> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}

Remova a antiga ligação de SSL:

PS C:\> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Adicione a nova ligação SSL usando o impressão digital do certificado:

PS C:\> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Agora você está pronto para se conectar a servidores Web usando o IIS Manager.

6. Se conectar a servidores de Web remoto usando o IIS Manager

O último passo é abrir seu IIS Manager, selecione a página inicial, no painel esquerdo e no centro do painel, selecione "Ligar a um servidor." Fornecer o nome do servidor e suas credenciais e você verá uma nova conexão exibida no painel de navegação do IIS Manager.

Porque eu executar esta operação um pouco, tirei os comandos anteriores e colocá-los em um script. Se você acha que talvez você precise fazer isso mais de uma vez — e tenho certeza que você vai — é sempre o melhor automatizar esse processo.

Jason Helmick

Jason Helmick tem mais de 20 anos de experiência em TI como um consultor empresarial, instrutor e autor. Como diretor de tecnologias do Windows PowerShell na Interface de formação técnica, ele se concentra em automação com o Active Directory e o IIS. Você pode ver mais sobre o IIS em seu próximo livro de Manning Publications, "Aprenda Windows IIS em um mês de almoços.

Conteúdo relacionado