Использование веб-служб на Ruby / Powershell

#ruby #scripting #powershell #savon #soap4r

#ruby #создание сценариев #powershell #savon #soap4r

Вопрос:

В настоящее время я использую Ruby в качестве основного языка программирования для поддержки управления конфигурацией. С момента выхода новой версии Ruby (1.9.3) я не смог использовать конфигурацию gem для использования веб-служб с использованием аутентификации NTLM. Это моя конфигурация gem с использованием ruby 1.9.1.

 httpclient (2.2.3)
nokogiri (1.5.0 x86-mingw32)
ocra (1.3.0)
rake (0.9.2.2)
rubysspi (1.3.1)
soap4r (1.5.8)
test-unit (2.4.0)
trollop (1.16.2)
win32-api (1.4.8 x86-mingw32)
win32-eventlog (0.5.2.fix)
windows-api (0.4.0)
windows-pr (1.2.1)
  

Я всегда стараюсь упростить работу, но, конечно, я не могу следить за обновлениями. Я подумал, что вместо использования полной реализации ruby для поддержки управления конфигурацией, может быть, пришло время использовать Microsoft (которая мне совсем не нравится) scripting engine (powershell) для запуска конкретной задачи Microsoft, не создавая зависимостей от все большего количества драгоценных камней и не усложняя их обслуживание и обновление. Изначально я думал создать консольный инструмент c # для сертификации задач, но я нашел о powershell. Я пытался использовать soap4r и не работает на версии 1.9.3, но он работает на версии 1.9.1 (пользовательский исправленный камень). Я попробовал savon gem, но без успешных результатов для аутентификации NTLM. Возможно, пришло время использовать комбинацию двух скриптовых движков, чтобы поддерживать ее в рабочем состоянии. Есть мысли.

Ответ №1:

Только вы понимаете общую картину, но в PowerShell, если вы хотите вызвать веб-службу, защищенную с помощью NTLM, это так же просто, как:

 # call webservice using the current user's credentials
$proxy = new-webserviceproxy $url -usedefaultcredential
$result = $proxy.method($param1, $param2)
  

Если вы хотите запросить учетные данные, используйте get-credential