我有一个Azure自动化Powershell工作流程:
workflow wf
{
param(
[parameter(Mandatory=$True)]
[object] $p
)
inlinescript
{
# ...
}
}
我正在使用“测试”窗格对其进行测试,并将值传递为{"FirstName": "John", "LastName": "Smith"}
。我还尝试了{"FirstName"="John";"LastName"="Smith"}
并在两个案例前添加了@
。
根据this
如果Runbook具有对象类型输入参数,则使用带有(名称,值)对的PowerShell哈希表来传递值。例如,如果Runbook中包含以下参数:
[Parameter (Mandatory = $true)][object] $FullName
,则将以下值传递给参数:@{"FirstName"="Joe";"MiddleName"="Bob";"LastName"="Smith"}
但在我的所有测试中,$p
都为空。
如何定义实际对象,传入它,然后遍历属性名称和值?
答案 0 :(得分:0)
要访问PowerShell工作流活动中的输入参数,您必须通过$Using
关键字进行操作。一旦我想出那个,我就能看到这个类型是作为一个字符串传递的。所以我必须使用ConvertFrom-Json
cmdlet从json字符串转换为对象。然后,我可以通过获取Properties
的{{1}}属性来遍历属性:
PSObject