まず第一に、私は PowerShell にかなり慣れていません (昨年以内)。今では多くのことを理解していますが、今では API 呼び出しは初めてです。
値を必要としない Web 呼び出しで API 呼び出しを行う方法を理解しました。または、値の配列を必要としないもの。例: $BSSPrincipalManagementWSP.ReadAccount("1_V4-0119341")
私が望むすべてを返します。しかし、$BSSPrincipalManagementWSP.UpdateAccountValues の Web 呼び出しのような手の込んだものに入る場合、最初の変数はアカウントの外部 ID ですが、必要な 2 番目の変数は配列内の 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 つはキーとしてリストされ、もう 1 つは値としてリストされています。これらは、OSS/BSS CHM ファイルとまったく同じ名前が付けられています。
他の誰かが私がどこで間違ったのか教えてもらえますか? どんな助けでも大歓迎です。