我正在使用以下代码连接到Windows 2008服务器。
WinRmTool.Builder builder = WinRmTool.Builder.builder("hostname", "domain\username", "password");
builder.setAuthenticationScheme(AuthSchemes.NTLM);
builder.useHttps(false);
WinRmTool tool = builder.build();
tool.executePs("COMMAND");
我在例外之下
由以下原因引起:java.io.IOException:在管道上检测到授权循环
“ {http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd} WinRmPort.http-conduit”
在具有域“空”的URL“ http://hostname:5985/wsman”上
我可以在浏览器中无需任何身份验证即可访问WS“ http://hostname:5985/wsman”,并且Windows服务器上的winrm服务设置如下。
AllowUnencrypted = false
Auth
Basic = false
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
客户端上的设置也相同。对Winrm WS的HTTPS访问不起作用,因此我正在使用useHttps(false)。
客户端和服务器位于不同的域。我能够使用提供的主机名,域\用户名和密码成功rdp到服务器。
我尝试将身份验证方案更改为kerberos / basic / digest。他们似乎都不起作用。我在两侧都尝试了“ allowUnencrypted = true”,但仍然无法正常工作。
我是否缺少任何conf / prop文件?
最佳答案
在远程服务器上配置以下设置后,相同的代码有效
winrm set winrm/config/service/Auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
关于java - 在领域为“null”的URL的管道上检测到Winrm4j授权循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46299280/