第一次使用PS,一般来说第一次使用脚本!
我在本地存储在主机上的wsdl,它指向localhost端点。这是必需的,因为远程服务器不为wsdl服务。但是,它们是这些SOAP请求的有效端点。
我在我的网络中有多个终结点,并且我想在引用静态wsdl的同时将New-WebServiceProxy请求发送给每个终结点。有没有办法使用本地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")
我计划将它作为server.txt中每个服务器的ForEach循环运行,但是需要每次都指向静态wsdl时设置不同的URL。每个服务器本身都不提供wsdl。
任何建议表示赞赏。
答案 0 :(得分:0)
您可能希望创建一个带有两个标题的CSV文件,一个标题用于服务器名称,另一个标题用于URL。
例如。
server,url
SERVER01,http://www.example.com/oneendpoint
SERVER02,http://www.example.com/twoendpoint
然后,您可以使用foreach循环遍历每个条目。您可以使用Import-CSV
cmdlet