首页 > 解决方案 > javax.xml.ws.soap.SOAPFaultException:访问被拒绝

问题描述

我正在尝试使用 wirnm java 工具从 Linux 服务器连接 windows server 2012,我正在使用以下代码,

WinRmClientContext context = null;
WinRmToolResponse result = null;
WinRmTool.Builder builder = null;
try
{
  context = WinRmClientContext.newInstance();
  builder = WinRmTool.Builder.builder(serverIP, userName, password);
  builder.setAuthenticationScheme(AuthSchemes.NTLM);
  builder.port(5985);
  builder.useHttps(false);
  builder.disableCertificateChecks(true);
  builder.context(context);
  WinRmTool tool = builder.build();
  tool.setRetriesForConnectionFailures(1);
  result = tool.executePs("COMMAND"); 
}
catch (Exception e){
 e.printStackTrace();
}

使用管理员帐户凭据可以正常工作,但是当我尝试使用非管理员或普通用户凭据时,它会出现“访问被拒绝”问题

线程“主”javax.xml.ws.soap.SOAPFaultException 中的异常:访问被拒绝。在 org.apache.cxf.jaxws.JaxWsClientProxy.mapException(JaxWsClientProxy.java:195) 在 org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145) 在 com.sun.proxy.$Proxy46.create( Unknown Source) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang。 reflect.Method.invoke(Method.java:498) 在 io.cloudsoft.winrm4j.client.RetryingProxyHandler.invokeWithRetry(RetryingProxyHandler.java:47) 在 io.cloudsoft.winrm4j.client.RetryingProxyHandler.invoke(RetryingProxyHandler.java:34)在 io.cloudsoft.winrm4j.client 的 com.sun.proxy.$Proxy47.create(Unknown Source)。WinRmClient.createShell(WinRmClient.java:475) at io.cloudsoft.winrm4j.winrm.WinRmTool.executeCommand(WinRmTool.java:348) at io.cloudsoft.winrm4j.winrm.WinRmTool.executePs(WinRmTool.java:364) at com .tcpwave.winrm.demo.App.main(App.java:32) 原因:org.apache.cxf.binding.soap.SoapFault:访问被拒绝。在 org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:66) 在 org.apache.cxf.binding.soap.interceptor.Soap12FaultInInterceptor.unmarshalFault(Soap12FaultInInterceptor.java:156) .cxf.binding.soap.interceptor.Soap12FaultInInterceptor.handleMessage(Soap12FaultInInterceptor.java:52) 在 org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) 在 org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage (抽象故障链发起者观察者。

winrm 默认只使用管理员帐户,我们是否需要在 windows 服务器上配置任何其他设置或授予任何权限或将组关联到非管理员用户以建立 winrm 通信

非常感谢任何帮助或建议

提前致谢

标签: javapowershellwindows-server-2012-r2winrm

解决方案


推荐阅读