首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Powershell中为自定义SOAP服务创建方法参数?

如何在Powershell中为自定义SOAP服务创建方法参数?
EN

Stack Overflow用户
提问于 2018-02-13 15:26:51
回答 1查看 673关注 0票数 0

我正在通过cmdlet使用一些基于SOAP的Web服务(更具体地说,是Opsware Twister ),并且在为我调用的方法提供参数时遇到了一些困难--它会导致类型转换错误。下面是代码:

代码语言:javascript
复制
$user = "myuser"
$passw = Get-Content "z:\creds.txt" | ConvertTo-SecureString

$hpsa_core = "core.dom.loc"

$creds = [PSCredential]::New($user, $passw)

$URI_ss = "https://$hpsa_core/osapi/com/opsware/server/ServerService?WSDL"
$ws_ss = New-WebServiceProxy -URI $URI_ss -Credential $creds -Namespace 'ns_ss'

$URI_search = "https://$hpsa_core/osapi/com/opsware/search/SearchService?WSDL"
$ws_search = New-WebServiceProxy -URI $URI_search -Credential $creds -Namespace 'ns_search'

$hostname = "SQLSERVER1.dom.loc"
$objectType = "device"
$expression = "ServerVO.hostname CONTAINS $hostname"

$filter = [ns_search.Filter] @{
    objectType = $objectType
    expression = $expression
}

$refs = $ws_ss.findServerRefs($filter)

问题是,findServerRefs方法并不期望一个原始类型,而是另一个类(com.opsware.search.Filter),以及创建其实例的方法不会通过服务公开。这种直截了当的方法不起作用,导致错误:

不能转换参数"filter",值为:"ns_search.Filter",用于"findServerRefs“以键入"ns_ss.Filter":”不能将"ns_search.Filter“类型的"ns_search.Filter”值转换为“ns_ss.Filter”类型。“行:36字符:1+ $refs = $ws_ss.findServerRefs($filter) +~+ CategoryInfo : NotSpecified:(:) [],MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

SearchService实现为Java接口(com.opsware.search -Interface SearchService)

我用错方法了吗?

重要的一点是:供应商(DLL)为Powershell提供了集成组件,它提供了易用体验,但我希望使用纯Powershell功能实现相同的结果(如果可能的话)。

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 13:56:04

替换这个片段

代码语言:javascript
复制
$filter = [ns_search.Filter] @{
    objectType = $objectType
    expression = $expression
}

用这个

代码语言:javascript
复制
$filter = [ns_ss.Filter] @{
    objectType = $objectType
    expression = $expression
}

很可能会做好这份工作。

更新:

发现此问题的原因:Bug in New-WebServiceProxy cmdlet when using -Namespace?

简而言之,您必须将脚本保存为文件并以这种方式调用(使用&操作符或命令行参数:powershell.exe -File script.ps1)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48770175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档