2011-11-07 63 views
0

目前,我正在使用Ruby作爲配置管理支持的核心編程語言。由於新版本的Ruby(1.9.3),我無法使用gem配置來使用NTLM身份驗證來使用Web服務。這是我使用Ruby 1.9.1的配置。使用Ruby/Powershell使用Web服務

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(我根本不喜歡)腳本引擎(powershell)來運行特定的微軟任務,而不會創建對越來越多gem的依賴關係,並且使得它很難保持和更新。最初,我想創建一個C#控制檯工具來確認任務,但是我發現了有關PowerShell的問題。我試圖使用soap4r並且不適用於1.9.3,但它適用於1.9.1(自定義固定寶石)。我嘗試了savon gem,但沒有成功的NTLM身份驗證結果。可能是時候使用兩個腳本引擎的組合來保持它的可維護性。有什麼想法嗎。

回答

1

只有你瞭解你的大圖片,但在PowerShell中,如果你要調用使用NTLM擔保的Web服務,它是那麼容易,因爲:

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

如果您想提示輸入憑據,使用get-credential