1

我想從cmdlet'new-webserviceproxy'調用方法SubmitJob。從cmdlet公開的方法如下。從Powershell中的new-webserviceproxy cmdlet調用方法'SubmitJob'

enter image description here

方法SubmitJob的定義如下

enter image description here

的方法,預計許多參數。但我們只想傳遞兩個參數,即'pJobDefinition'和'pAction'。

當我們單獨傳遞這兩個參數時,我們會得到低於錯誤。

enter image description here

幫我單獨傳遞這兩個參數調用該方法。

在此先感謝

+0

...是什麼讓你覺得可以工作? – TessellatingHeckler

+0

@TessellatingHeckler我不確定哪個是方法中的強制參數。我是剛接觸PowerShell的服務代理cmdlet。 – Venkatakrishnan

+0

您正在使用公共資源的'$ url',您可以與我們分享?我嘗試過'New-WebServiceProxy'http://www.webservicex.net/globalweather.asmx?WSDL'',但我沒有在列表中找到相同的方法。你也使用哪個PS版本?你有3個上市,所以它更加努力測試這 – Matt

回答

1

您呼叫定義哪些參數是必需的,哪些有默認值,使他們成爲可選的方法的創造者。作爲該方法的消費者,您別無選擇,只能提供所有必需參數的值。您可以傳遞一個$ null值或使用[System.Management.Automation.Language.NullString] :: Value將一個空值傳遞給特定的參數,但是這樣做的能力不依賴於您,它是單獨的直至該方法的創建者。

您可以做的是創建一個包裝函數,該函數只接受您希望呈現的兩個輸入,然後將所有附加參數添加到您定義的默認值中。例如:

function SomeFunction ($foo,$bar,$foobar){ 
    #do something 
    $foo 
    $bar 
    $foobar 
} 

function MyShortFunction ($foo){ 
    SomeFunction($foo, "a parameter that doesn't change", "some other hardcoded parameter") 
} 

爲了做到這一點,但是你需要找出哪些「默認」參數值來傳遞,以保證通話正常工作。簡而言之,該方法的創建者決定需要哪些值,並且必須確保以某種方式傳遞這些參數。

+0

嗨 提供所有參數後,我得到以下錯誤。 使用「23」參數調用「SubmitJob」異常:「請求失敗,HTTP狀態爲401:未經授權。「 通過用戶界面我可以提交相同的參數,但是當我嘗試通過PowerShell的 我得到上述錯誤 – Venkatakrishnan

+0

Web服務或方法是否需要顯式設置憑據?這聽起來像一個身份驗證問題是不相關的如果你有問題的身份驗證,我會發表一個新的問題,用簡明的代碼來說明確切的問題 – StephenP

+0

我已經嘗試通過提供憑據仍然我得到該錯誤。 – Venkatakrishnan

相關問題