1

Я хочу вызвать метод SubmitJob из командлета 'new-webserviceproxy'. Методы, выставленные с помощью командлета, следующие.Вызов метода 'SubmitJob' из командлета new-webserviceproxy в Powershell

enter image description here

Определение метода SubmitJob заключается в следующем

enter image description here

Метод рассчитывает множество параметров. Но мы хотим передать только два параметра: «pJobDefinition» и «pAction».

Когда мы передаем только эти два параметра, мы становимся ниже ошибки.

enter image description here

Помоги мне вызвать метод, передавая эти два параметра в одиночку.

Заранее спасибо

+0

... что заставляет вас думать, что это может сработать? – TessellatingHeckler

+0

@TessellatingHeckler Я не уверен, что является обязательным параметром в методе. Я новичок в сервисных командлетах powershell. – Venkatakrishnan

+0

Является ли '$ url' вы используете общедоступный ресурс, который вы можете поделиться с нами? Я попробовал «New-WebServiceProxy» http: //www.webservicex.net/globalweather.asmx? WSDL'', но в моем списке не было таких же методов. Также, какую версию PS вы используете? У вас есть 3 списка, поэтому он делает больше усилий, чтобы проверить это. – Matt

ответ

1

Создатель метода вы звоните определяет, какие параметры являются обязательными и которые имеют значения по умолчанию, которые позволили бы им быть факультативным. В качестве потребителя метода у вас нет выбора, кроме как предоставить значения для всех необходимых параметров. Вы можете передать значение $ null или использовать [System.Management.Automation.Language.NullString] :: Value, чтобы передать значение null определенному параметру, но способность сделать это не зависит от вас, это единственно вплоть до создателя метода.

Что вы можете сделать, так это создать функцию обертки, которая принимает только два входа, которые вы хотите представить, а затем добавляет все дополнительные параметры со значениями по умолчанию, которые вы определяете. Например:

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

Привет После подачи всех параметров я получаю следующую ошибку. Ошибка вызова «SubmitJob» с аргументом «23»: «Ошибка запроса с состоянием HTTP 401: неавторизованный." Через UI я могу отправить с теми же параметрами, но когда я попробую через powershell, я получаю вышеуказанную ошибку. – Venkatakrishnan

+0

Требуется ли явное определение веб-службы или метода для явного задания? Это звучит как проблема аутентификации, которая не имеет отношения. Если у вас возникли проблемы с проверкой подлинности, я бы опубликовал новый вопрос с кратким кодом, иллюстрирующим точную проблему. – StephenP

+0

Я попытался предоставить учетные данные. Тем не менее, я получаю эту ошибку. – Venkatakrishnan