2017-12-19 10 views
0

내가 푸른 자동화 파워 쉘 워크 플로우가의 개체 속성을 반복합니다. 나는 또한 {"FirstName"="John";"LastName"="Smith"}을 시도하고 두 경우 모두 앞에 @을 추가했습니다. 하여 runbook 오브젝트 타입의 입력 파라미터를 갖는 경우어떻게 입력 매개 변수

this

에 따르면, 다음의 값을 전달하는 (이름, 값) 쌍 PowerShell은 해시 테이블을 사용한다. 당신이 runbook의 다음 매개 변수를 예를 들어, : @{"FirstName"="Joe";"MiddleName"="Bob";"LastName"="Smith"}

을하지만 내 모든 테스트에 $p가 null : [Parameter (Mandatory = $true)][object] $FullName은 다음 매개 변수에 다음 값을 전달합니다.

실제 개체를 정의하고 전달한 다음 속성 이름과 값을 반복하는 방법은 무엇입니까?

+0

이 값이 실제로 객체로 전달받을 또는이 (JSON) 문자열로 전달합니까? –

+0

는 PowerShell에 대한 나의 무지를 변명하지만 어떻게 알 수 있습니까? –

+0

명시 적 유형 ('[parameter (Mandatory = $ True)] $ p')없이 시도하고 유형 ('Write-Host $ p.GetType(). FullName')을 확인하십시오. –

답변

0

PowerShell 워크 플로의 활동 내에서 입력 매개 변수에 액세스하려면 $Using 키워드를 사용해야합니다. 그 중 하나를 알아 냈 으면 유형이 문자열로 전달되는 것을 볼 수있었습니다. 그래서 ConvertFrom-Json cmdlet을 사용하여 JSON 문자열을 개체로 변환해야했습니다. 나는 다음 PSObjectProperties 속성을 얻어서 속성을 반복 할 수 있었다 :

$pObj = $Using:p | ConvertFrom-Json 
ForEach ($pr in $pObj.PSObject.Properties) 
{ 
    #$pr.Name 
    #$pr.Value 
}