我对PowerShell相当陌生,我确信脚本之神会度过一个枯燥的日子,或者将其拒之门外。我已经阅读了很多有关创建对象以及将成员分配给对象的文档。许多帖子非常相似,但是我还没有找到可以直接回答我的问题的帖子。
以下是我要实现的示例。
$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")
}
首先我知道这是错误的,但是这个想法是Parent对象有一个对象作为参数之一。此外,新对象还具有一个嵌入式对象:Parentobject> childobject> baseobject
如果我要执行...
$MgmtSet = New-Object -TypeName Cmdlet.WebService.MgInfo
$MgmtSet
我会得到
ExtensionData :
Param1 : True
Param2 : False
oParam : {Cmdlet.WebService.ParamBase}
如果执行相同的 token
$MgmtSet = New-Object -TypeName Cmdlet.WebService.ParamBase
$MgmtSet
我会得到
ExtensionData :
differentParam : Testname
DiffParam2 : False
oDifParamOb :
目标是为嵌入式对象分配值,并将其传递给父对象。我可以使用数组或哈希表,但是将这些对象分配给父对象是我的不足。
提前谢谢你。
最佳答案
由于涉及的两种类型似乎都具有无参数的构造函数,因此应通过哈希表对其进行初始化;同样,可以创建自定义对象$MGSet
通过将哈希表强制转换为[pscustomobject]
进行内联:
$MgmtSet = [Cmdlet.WebService.MgInfo] @{
Param1 = $true
Param2 = $false
oParam = [Cmdlet.WebService.ParamBase] @{
differentParam = "Testname"
DiffParam2 = $false
oDifParamOb = [pscustomobject] @{ oDifParamOb = "sys1", "Sys2", "Sys3" }
}
}
关于powershell - 需要帮助将嵌入式对象分配给PowerShell脚本中的父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199670/