需要帮助将嵌入式对象分配给PowerShell脚本中的父对象吗
我对PowerShell相当陌生,我相信脚本神会有一天把它拆开,或者马上拒绝它。我已经阅读了很多关于创建对象和为对象分配成员的文档。很多帖子都非常相似,但我还没有找到一个能直接回答我问题的帖子 下面是我试图实现的一个例子需要帮助将嵌入式对象分配给PowerShell脚本中的父对象吗,powershell,Powershell,我对PowerShell相当陌生,我相信脚本神会有一天把它拆开,或者马上拒绝它。我已经阅读了很多关于创建对象和为对象分配成员的文档。很多帖子都非常相似,但我还没有找到一个能直接回答我问题的帖子 下面是我试图实现的一个例子 $MGSet = New-Object -TypeName PSObject $MgmtSet = New-Object -TypeName Cmdlet.WebService.MgInfo $MgmtSet.Param1 = $true $MgmtSe
$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")
}
首先,我知道这是错误的,但想法是父对象有一个对象作为参数之一。此外,新对象还有一个嵌入对象:Parentobject>childobject>baseobject
如果我要执行
$MgmtSet = New-Object -TypeName Cmdlet.WebService.MgInfo
$MgmtSet
我会得到
ExtensionData :
Param1 : True
Param2 : False
oParam : {Cmdlet.WebService.ParamBase}
如果我执行
$MgmtSet = New-Object -TypeName Cmdlet.WebService.ParamBase
$MgmtSet
我会得到
ExtensionData :
differentParam : Testname
DiffParam2 : False
oDifParamOb :
目标是为嵌入对象指定值并将其传递给父对象。我可以使用数组或哈希表,但将这些对象分配给父对象是我的不足之处
提前谢谢你。这是你想要的吗
$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
由于所涉及的两种类型似乎都具有无参数构造函数,因此通过哈希表初始化它们应该是可行的;类似地,可以创建自定义对象
$MGSet
通过将哈希表强制转换为[pscustomobject]
进行内联:
$MgmtSet = [Cmdlet.WebService.MgInfo] @{
Param1 = $true
Param2 = $false
oParam = [Cmdlet.WebService.ParamBase] @{
differentParam = "Testname"
DiffParam2 = $false
oDifParamOb = [pscustomobject] @{ oDifParamOb = "sys1", "Sys2", "Sys3" }
}
}
这就是我所寻找的,让我更接近我的目标。非常感谢。