powershell - 需要帮助将嵌入式对象分配给PowerShell脚本中的父对象

标签 powershell

我对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/

相关文章:

windows - 当前用户的数据文件放在哪里

powershell - 是否有用于查询 Azure 订阅信用状态的 Powershell cmdlet?

Powershell ISE 缺少颜色输出

PowerShell ForEach $file in $Files 中的每个 $file

batch-file - 将变量从批处理传递到powershell

powershell - 去掉使用convert-tohtml时出现的powershell Mysql查询结果中不需要的列

powershell - 使用 PowerShell 和 FTP 创建 Azure 网站

powershell - 比较 Azure Properties.ContentMD5 和 Get-Filehash 之间的字符串输出

unit-testing - Azure cmdlet 调用上出现 Pester 模拟错误 PSInvalidCastException

windows - 在 Windows 10 上,授予用户在文件夹 C :\VMs, 中创建、编辑和删除文件的权限,但禁止删除文件夹本身