Potřebujete pomoc přiřazení vložený objekt mateřské objekt ve skriptu PowerShell

hlasů
2

Mám PowerShellu poměrně nová a jsem si jistý, že bohové skript bude mít seno den nástupu to od sebe, nebo odmítnout z ruky. Četl jsem spoustu dokumentace o vytváření objektů a přiřazování členů k objektům. Mnoho pracovních míst jsou si velmi podobné, ale ještě jsem se najít ten, který poskytuje odpovědi na mou otázku přímo.

Níže je uveden příklad toho, co se snažím dosáhnout.

$MGSet = New-Object -TypeName PSObject
$MgmtSet = New-Object -TypeName Cmdlet.WebService.MgInfo
      $MgmtSet.Param1 = $true
      $MgmtSet.Param2 = $false
      $MgmtSet.oParam = [Cmdlet.WebService.ParamBase] @{
            $PB.differentParam = Testname
            $PB.DiffParam2 = $false
            $PB.oDifParamOb = Add-Member -InputObject $MGset - MemberType NoteProperty -Name oDifParamOb -Value (sys1, Sys2, Sys3)
       }

Za prvé vím, že to je špatně, ale myšlenka je objekt Parent má objekt jako jeden z parametrů. Kromě toho je nový objekt má také vložený objekt: Parentobject> childobject> baseobject

Kdybych měl provést ...

$MgmtSet = New-Object -TypeName Cmdlet.WebService.MgInfo
$MgmtSet

dostal bych

ExtensionData                       :
Param1                              : True
Param2                              : False
oParam                              : {Cmdlet.WebService.ParamBase}

Na stejném duchu, kdybych vykonat

$MgmtSet = New-Object -TypeName Cmdlet.WebService.ParamBase
$MgmtSet

dostal bych

ExtensionData                       :
differentParam                      : Testname
DiffParam2                          : False
oDifParamOb                         : 

Cílem je přiřadit hodnoty pro vložené objekty a předat jej do nadřazeného objektu. Mohu použít pole nebo hash tabulku, ale přiřazování tyto objekty do mateřského je místo, kde jsem zaostává.

Děkuji předem.

Položena 07/11/2018 v 23:56
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Je to to, co chcete?

$ParentObject = New-Object -TypeName psobject
$ChildObject = New-Object -TypeName psobject
$ChildObject | Add-Member -MemberType NoteProperty -Name "HI" -Value "Spoons are fun"
$ParentObject | Add-Member -MemberType NoteProperty -Name "Sub" -Value $ChildObject

$ParentObject.Sub.HI
Odpovězeno 08/11/2018 v 00:40
zdroj uživatelem

hlasů
0

Vzhledem k tomu, oba typy účastnící se zdají mít parametrů méně konstruktérů, inicializace je přes hashtables by měly fungovat; Podobně, vlastní objekt $MGSetmůže být vytvořen inline litím HashTable na [pscustomobject]:

$MgmtSet = [Cmdlet.WebService.MgInfo] @{
   Param1 = $true
   Param2 = $false
   oParam = [Cmdlet.WebService.ParamBase] @{
     differentParam = "Testname"
     DiffParam2 = $false
     oDifParamOb = [pscustomobject] @{ oDifParamOb = "sys1", "Sys2", "Sys3" }
   }
 }
Odpovězeno 08/11/2018 v 04:01
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more