Отправьте запрос SOAP New-WebServiceProxy нескольким конечным точкам

Первый раз с PS, первый раз вообще сценарий!

У меня на хост-компьютере хранится локальный wsdl, который указывает на конечную точку localhost. Это необходимо, поскольку удаленные серверы не обслуживают wsdl. Однако они являются действительными конечными точками для этих запросов SOAP.

У меня есть несколько конечных точек в моей сети, и я хочу отправить запрос New-WebServiceProxy каждому, ссылаясь на статический wsdl. Есть ли способ использовать локальный wsdl, но указать переопределение конечной точки назначения?

Это то, что у меня сейчас есть (извините за комментарии, я пытаюсь узнать):

# The uri refers to the wsdl page            

$uri = ( Join-Path $PSScriptRoot "\wsdl\PublicService.wsdl" )

# Create the Web Service Proxy           
$service = New-WebServiceProxy -Uri $uri  -Namespace WebServiceProxy  -UseDefaultCredential -Verbose       

# Specify the list of target servers IP addressesr hostnames

$serverlistpath = ( Join-Path $PSScriptRoot "\servers\servers.txt" )
$servers = gc $serverlistpath


# Create an output path to the templates folderr use witin the SOAP request
$templatetemp = ( Join-Path $PSScriptRoot "\template_temp\" )


# Gets the UNC path of the script running location

$currentDirectory = Get-Location
$currentDrive = Split-Path -qualifier $currentDirectory.Path
$logicalDisk = Gwmi Win32_LogicalDisk -filter "DriveType = 4 AND DeviceID = '$currentDrive'"
$uncPath = $currentDirectory.Path.Replace($currentDrive, $logicalDisk.ProviderName)

# Execute SOAP request

$service.Backup("false", "true", "false", "false", "$uncpath\template_temp")

Я планирую запускать это как цикл ForEach для каждого сервера в Servers.txt, но мне нужно иметь возможность каждый раз устанавливать разные URL, указывая на статический wsdl. Каждый сервер не обслуживает сам wsdl.

Любой совет приветствуется.

1 ответ

Возможно, вы захотите посмотреть на создание файла CSV с двумя заголовками, один для имен вашего сервера, а другой для URL.

Ex.

server,url SERVER01,http://www.example.com/oneendpoint SERVER02,http://www.example.com/twoendpoint

Затем вы можете перебирать каждую запись, используя цикл foreach. Вы можете легко импортировать CSV-файлы в PowerShell с помощью Import-CSV командлет

Другие вопросы по тегам