#java #powershell #windows-server-2012-r2 #winrm
Вопрос:
Я пытаюсь подключить Windows server 2012 с сервера Linux с помощью java-инструмента wirnm, я использую следующий код,
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.создать(Неизвестный источник) в sun.reflect.NativeMethodAccessorImpl.invoke0(Собственный метод) в sun.reflect.NativeMethodAccessorImpl.вызовите(NativeMethodAccessorImpl.java:62) в sun.reflect.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) в java.lang.reflect.Метод.вызов(Метод.java:498) при вводе-выводе.cloudsoft.winrm4j.клиент.Повторная попытка ProxyHandler.invokeWithRetry(повторная попытка ProxyHandler.java:47) в io.cloudsoft.winrm4j.клиенте.Повторная попытка ProxyHandler.invoke(повторная попытка ProxyHandler.java:34) в com.sun.proxy.$Proxy47.создать(Неизвестный источник) в io.cloudsoft.winrm4j.клиент.WinRmClient.createShell(WinRmClient.java:475) в io.cloudsoft.winrm4j.winrm.WinRmTool.Команда выполнения(WinRmTool.java:348) в io.cloudsoft.winrm4j.winrm.WinRmTool.Команды выполнения(WinRmTool.java:364) в com.tcpwave.winrm.демо.Приложение.основное(Приложение.java:32) Вызвано: org.apache.cxf.привязка.мыло.SoapFault: Доступ запрещен. в org.apache.cxf.привязка.мыло.перехватчик.Soap12FaultInInterceptor.unmarshalFault(Soap12FaultInInterceptor.java:156) в org.apache.cxf.привязка.soap.перехватчик.Soap12FaultInInterceptor.Обработчик сообщений(Soap12FaultInInterceptor.java:66) в org.apache.cxf.привязка.soap.перехватчик.Soap12FaultInInterceptor.Обработчик сообщений(Soap12FaultInInterceptor.java:52) в org.apache.cxf.фазе.Цепочка фазаинтерцепторов.Сделайте исключение(цепочка последовательностей.java:308) в перехватчике org.apache.cxf..AbstractFaultChainInitiatorObserver.on соОбщение(AbstractFaultChainInitiatorObserver.java:112) в орг.apache.cxf.jaxws.обработчик.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:137) в org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor.handleMessage(SOAPHandlerInterceptor.java:70) на этапе org.apache.cxf.Цепочка фазаинтерцепторов.doIntercept(цепочка phaseinterceptor.java:308)
winrm по умолчанию работает только с учетными записями администраторов. нужно ли настраивать какие-либо другие параметры на сервере Windows или предоставлять какие-либо привилегии или ассоциированные группы пользователям, не являющимся администраторами, для установления связи winrm
Любая помощь или предложение будут высоко оценены
заранее спасибо