Powershell API Web服务调用

时间:2013-10-01 05:09:12

标签: web-services api powershell powershell-v2.0

首先,我对PowerShell相当新(在过去的一年里)我现在了解了很多,但现在API调用对我来说是新的。

我已经弄清楚如何使用不需要任何值的Web调用进行API调用。或者那些不需要值数组的。如:$ BSSPrincipalManagementWSP.ReadAccount(“1_V4-0119341”)

返回我想要的一切。但是,如果我进入类似于$ BSSPrincipalManagementWSP.UpdateAccountValues的Web调用之类的东西,则第一个变量是帐户外部ID,但所需的第二个变量是数组中的accountValues。

我尝试过这样的事情来实现它:

function Update-AccountValues

(

    [string]$accountExternalId,

    [array]$accountValues = @(Import-Csv -Path $ImportPath)

)

{

    $accountValues

    $BSSPrincipalManagementWSP.UpdateAccountValues($accountExternalId, $accountValues)

}



Update-AccountValues "1_V4-0119341"

但是我收到以下错误:

Cannot convert argument "accountValues", with value: "System.Object[]", for     "UpdateAccountValues" to type "BSSPrincipalManagementNS.AccountValue[]": "Cannot convert value 

"@{Key=ScreenSaverTimeoutMinutes; Value=60}" to type "BSSPrincipalManagementNS.AccountValue". Error: "Cannot convert the "@{Key=ScreenSaverTimeoutMinutes; Value=60}" value of type 

"System.Management.Automation.PSCustomObject" to type "BSSPrincipalManagementNS.AccountValue".""

At C:\Users\Matt Bergeron\AppData\Local\Temp\ff88f967-9d7c-4f6f-a424-212298a69655.ps1:61 char:2

+     $BSSPrincipalManagementWSP.UpdateAccountValues($accountExternalId, $accountValu ...

+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo          : NotSpecified: (:) [], MethodException

+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

我以为我正在传递“一系列accountValue对象”,因为它要求。

CSV文件中的所有内容都是2列,1列为键,另一列列为值。它们的名称与称为它们的OSS / BSS CHM文件完全相同。

其他人可以告诉我哪里出错吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的API期望值为特定类型BSSPrincipalManagementNS.AccountValue[]。您需要找到另一个API调用,您可以在其中创建BSSPrincipalManagementNS.AccountValue的实例并将它们放入数组中。然后使用该数组调用原始API。