У меня есть рабочий процесс Powershell для автоматизации Azure:
workflow wf
{
param(
[parameter(Mandatory=$True)]
[object] $p
)
inlinescript
{
# ...
}
}
Я тестирую его с помощью панели «Тест» и передаю значение как {"FirstName": "John", "LastName": "Smith"}
. Я также пробовал {"FirstName"="John";"LastName"="Smith"}
и добавлял @
перед обоими случаями.
Согласно этому
Если в модуле Runbook есть входной параметр типа объекта, используйте хэш-таблицу PowerShell с парами (имя, значение) для передачи значения. Например, если у вас есть следующий параметр в модуле Runbook:
[Parameter (Mandatory = $true)][object] $FullName
, вы передаете ему следующее значение:@{"FirstName"="Joe";"MiddleName"="Bob";"LastName"="Smith"}
Но во всех моих тестах $p
равно нулю.
Как определить фактический объект, передать его, а затем выполнить итерацию по именам и значениям свойств?
[parameter(Mandatory=$True)]$p
) и проверьте тип (Write-Host $p.GetType().FullName
). - person Ansgar Wiechers   schedule 21.12.2017Write-Output "Type: " $p.GetType().FullName
я получаю сообщение об ошибке Вы не можете вызвать метод для выражения с нулевым значением. Как с явным, так и без типа - person Jonas Stawski   schedule 21.12.2017$Using:p
для доступа к переменной. - person Jonas Stawski   schedule 22.12.2017