Быстрый способ объединения / объединения объектов в powershell - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть два объекта, каждый из которых содержит более 20 свойств.

Первый - из Get-ADUser, второй - с использованием SQL-запроса из базы данных Access.

Итак, сейчас янапример, $ object1, $ object2.

Я нахожусь в процессе объединения этих объектов, создавая пользовательский объект, например, такой:

    $properties = [ordered]@{
    'a'=$object1.propertyX;
    'b'=$object1.propertyY;
    'c'=$object2.propertyX;
    ...
    }

$CombinedObject = New-Object –TypeName PSObject -Property $properties

Это будет работать, однако этопотребуется много времени, чтобы набрать ~ 40 свойств каждого объекта в общей сложности.

Есть ли более быстрый способ объединить два объекта со всеми их свойствами в один пользовательский объект, который бы сэкономил мне всю эту типизацию?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете создать хеш-таблицу для свойств каждого объекта и создать объект из этого.Я бы предложил добавлять префиксы 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...