我有两个对象,每个对象都包含20多个属性。
第一个来自Get-ADUser,第二个来自Access数据库中的SQL查询。
所以现在我有例如$ object1,$ object2。
我正在通过做一个自定义对象来组合这些对象,例如:
$properties = [ordered]@{
'a'=$object1.propertyX;
'b'=$object1.propertyY;
'c'=$object2.propertyX;
...
}
$CombinedObject = New-Object –TypeName PSObject -Property $properties
这将起作用,但是总共花费很多时间才能键入每个对象的〜40个属性。
有没有一种更快的方法可以将两个对象及其所有属性组合到一个自定义对象中,从而省去了我的所有打字工作?
答案 0 :(得分:2)
您可以为每个对象的属性创建一个哈希表,然后从中创建一个对象。我建议在每个属性上添加AD和SQL前缀,以了解它来自哪个对象并避免冲突。
$PropertyHT = @{}
$object1.psobject.properties.name | ForEach-Object{ $PropertyHT.Add("AD$_",$Object1.$_) }
$object2.psobject.properties.name | ForEach-Object{ $PropertyHT.Add("SQL$_",$Object2.$_) }
$CombinedObject = New-Object –TypeName PSObject -Property $PropertyHT