Para estabelecer uma conexão entre o plug-in PowerShell e o Windows PowerShell, você deve configurar o WinRM para usar um dos protocolos de comunicação com suporte.

O plug-in PowerShell é compatível com o Windows Remote Management (WinRM) 2.0 como um protocolo de gerenciamento.

Os seguintes métodos de autenticação são suportados.
Método de autenticação Detalhes
Básica Mecanismo de autenticação não seguro que requer um nome de usuário e uma senha.
Kerberos Protocolo de autenticação seguro que usa tíquetes para verificar a identidade do cliente e do servidor.
Observação: O plug-in PowerShell não oferece suporte à delegação de credenciais do usuário no WinRM, e o CredSSP não é um método de autenticação com suporte.

WinRM por meio de HTTP

O plug-in PowerShell oferece suporte à comunicação com o host WinRM por meio do protocolo HTTP. Embora o WinRM autentique a comunicação, a transferência de dados não está criptografada e é enviada como texto sem formatação na rede. Você deverá usar o protocolo HTTP se o IPSec estiver configurado entre as máquinas que se comunicam.

Para usar a autenticação Básica, você deve definir a propriedade AllowUnencrypted como true na configuração do WinRM do serviço e do cliente. Para obter um exemplo de configuração de HTTP, consulte Configurar o WinRM para usar HTTP.

WinRM por meio de HTTPS

O plug-in PowerShell oferece suporte à comunicação com o host WinRM por meio do protocolo HTTPS. Você pode usar o protocolo HTTPS como um método mais seguro de comunicação.

Para usar o protocolo HTTPS, você deve gerar um certificado para autenticação de servidor e instalar o certificado no host WinRM. Para obter um exemplo de configuração de HTTPS, consulte Configurar o WinRM para usar HTTPS.

Configurar o WinRM para usar HTTP

Você pode configurar o host WinRM para ativar a comunicação com o plug-in PowerShell por meio do protocolo HTTP.

Você deve modificar a configuração de WinRM executando comandos na máquina do host WinRM. Você pode usar a mesma máquina como o serviço WinRM e o cliente WinRM.

Importante: Se você ignorar qualquer uma das etapas ao configurar o WinRM para usar HTTP, o host não poderá ser adicionado, e você poderá receber uma mensagem de erro nos logs, como
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

Procedimento

  1. Execute o seguinte comando para definir os valores de configuração padrão do WinRM.
    c:\> winrm quickconfig
  2. (Opcional) Execute o seguinte comando para verificar se um ouvinte está em execução e verifique as portas padrão.
    c:\> winrm e winrm/config/listener

    As portas padrão são 5985 para HTTP e 5986 para HTTPS.

  3. Ative a autenticação básica no serviço WinRM.
    1. Execute o seguinte comando para verificar se a autenticação básica é permitida.
      c:\> winrm get winrm/config/service
    2. Execute o seguinte comando para ativar a autenticação básica.
      c:\> winrm set winrm/config/service/auth @{Basic="true"}
  4. Execute o seguinte comando para permitir a transferência de dados não criptografados no serviço WinRM.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Se o nível de proteção do token de associação do canal do serviço WinRM estiver definido como rigoroso, altere seu valor para reduzido.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Ative a autenticação básica no cliente WinRM.
    1. Execute o seguinte comando para verificar se a autenticação básica é permitida.
      c:\> winrm get winrm/config/client
    2. Execute o seguinte comando para ativar a autenticação básica.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Execute o seguinte comando para permitir a transferência de dados não criptografados no cliente WinRM.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Se a máquina do host WinRM estiver em um domínio externo, execute o seguinte comando para especificar os hosts confiáveis.
    c:\> winrm set winrm/config/client @{TrustedHosts="host1, host2, host3"}
  9. Execute o seguinte comando para testar a conexão com o serviço WinRM.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:user_name -p:password -encoding:utf-8

Configurar o WinRM para usar HTTPS

Você pode configurar o host WinRM para permitir a comunicação com o plug-in PowerShell por meio do protocolo HTTPS.

O host WinRM requer um certificado para que ele possa se comunicar por meio do protocolo HTTPS. Você pode obter um certificado ou gerá-lo. Por exemplo, você pode gerar um certificado autoassinado usando a ferramenta de Criação de certificado (makecert.exe) que faz parte do .NET Framework SDK.

Pré-requisitos

  • Configure o WinRM para usar o protocolo HTTP. Para obter mais informações, consulte Configurar o WinRM para usar HTTP.
  • Verifique se você pode acessar o Console de Gerenciamento da Microsoft (mmc.exe) no host WinRM.

Procedimento

  1. Gere um certificado autoassinado.
    A seguinte linha de comando contém a sintaxe de exemplo para a criação de um certificado no host WinRM usando makecert.exe.

    makecert.exe -r -pe -n "CN=host_name-3,O=organization_name" -e mm/dd/yyyy -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 certificate_name.cer

  2. Adicione o certificado gerado usando o Console de Gerenciamento da Microsoft.
    1. Execute mmc.exe.
    2. Selecione Arquivo > Adicionar/Remover Snap-in.
    3. Na lista de snap-ins disponíveis, selecione Certificados e clique em Adicionar.
    4. Selecione Conta de computador e clique em Avançar.
    5. Clique em Concluir.
    6. Verifique se o certificado está instalado em Raiz do Console > Certificados (Computador Local) > Pessoal > Certificados e em Raiz do Console > Certificados (Computador Local) > Autoridades de Certificação de Raiz Confiáveis > Certificados.
      Se o certificado não estiver instalado nas pastas Autoridades de Certificação de Raiz Confiáveis e Pessoal, você deverá instalá-lo manualmente.
  3. Crie um ouvinte HTTPS usando o nome de host e a impressão digital corretos.
    A seguinte linha de comando contém um exemplo de sintaxe para criar um ouvinte HTTPS.

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="host_name";CertificateThumbprint="certificate_thumbprint"}

    Observação: Omita os espaços na impressão digital do certificado.
  4. Teste a conexão.
    A seguinte linha de comando contém um exemplo de sintaxe para testar a conexão.

    winrs -r:https://host_name:port_number -u:user_name -p:password hostname