Отправьте запрос 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
командлет