2017-09-19 5 views
0

J'utilise le code ci-dessous pour me connecter à un serveur Windows 2008.Winrm4j Une boucle d'autorisation est détectée sur Conduit sur l'URL avec le domaine "null"

WinRmTool.Builder builder = WinRmTool.Builder.builder("hostname", "domain\username", "password"); 
builder.setAuthenticationScheme(AuthSchemes.NTLM); 
builder.useHttps(false); 
WinRmTool tool = builder.build();  
tool.executePs("COMMAND"); 

Je reçois ci-dessous exception

Causée par: java.io.IOException: boucle d'autorisation détectée sur le conduit "{} http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd WinRmPort.http-conduit" sur l'URL "http://hostname:5985/wsman" avec royaume « null »

Je suis en mesure d'accéder à la WS « http://hostname:5985/wsman » sans authentification dans le navigateur et les paramètres de service WinRM sur Windows se Rver sont comme ci-dessous.

AllowUnencrypted = false 
    Auth 
     Basic = false 
     Kerberos = true 
     Negotiate = true 
     Certificate = false 
     CredSSP = false 
     CbtHardeningLevel = Relaxed 
    DefaultPorts 
     HTTP = 5985 
     HTTPS = 5986 

Les paramètres sont les mêmes pour mon client. L'accès HTTPS au WSRM WS ne fonctionne pas, donc j'utilise useHttps (false).

Le client et le serveur sont sur des domaines différents. Je suis capable de rdp avec succès au serveur en utilisant le nom d'hôte fourni, domaine \ nom d'utilisateur & mot de passe.

J'ai essayé de changer les schémas d'authentification en kerberos/basic/digest. Aucun d'entre eux ne semble fonctionner. J'ai essayé 'allowUnencrypted = true' des deux côtés, mais ne fonctionne toujours pas.

Ai-je perdu des fichiers conf/prop?

Répondre

0

Après avoir configuré les paramètres ci-dessous sur le serveur distant, même code a travaillé

winrm set winrm/config/service/Auth '@{Basic="true"}' 
winrm set winrm/config/service '@{AllowUnencrypted="true"}'