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ásico 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.

autenticação Kerberos

Você pode usar a autenticação Kerberos quando adiciona e gerencia um host PowerShell. Com a autenticação Kerberos, os usuários do domínio podem executar comandos em máquinas remotas habilitadas para PowerShell sobre o WinRM.

Para configurar o WinRM no host do PowerShell, execute o seguinte comando.
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

Para obter mais informações, consulte Configurar a autenticação Kerberos para plug-ins do Automation Orchestrator.

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.

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 o Powershell Cmdlet New-SelfSignedCertificate.
    New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName ("machinename.subdomain.company.com", "machinename") -NotAfter (get-date).AddYears(5) -Provider "Microsoft RSA SChannel Cryptographic Provider" -KeyLength 2048

    Neste exemplo, o parâmetro -NotAfter especifica que o certificado expirará em 5 anos. Se esse parâmetro não for especificado, o certificado expirará em 1 ano. Saiba mais sobre a criação de certificados autoassinados.

  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.

    Quando o certificado expirar, o ouvinte deverá ser excluído e criado novamente com o novo certificado válido.

  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