Вы можете использовать метод Add-Member для объекта PsCustomObject.
$myObject = [PSCustomObject]@{
ComputerName = "abc"
Data = "xxx"
}
$myObject | Add-Member -NotePropertyName Level -NotePropertyValue High
$myObject | Add-Member Privilege Elevated
$myObject
#Output looks like,
ComputerName Data Level Privilege
------------ ---- ----- ---------
abc xxx High Elevated
Обновление
Не знаю, почему, но Подробнее об этом ...
Если вы напечатаете объект Pscustomobject, а затем запустите add-member, они, похоже, будут проигнорированы. Если вы создаете хеш-таблицу, обновляете ее и затем конвертируете в PsObject, это работает. Ниже приведен пример этой хеш-таблицы
$myObject = @{
ComputerName = "abc"
Data = "xxx"
}
$myObject | ft
$myObject.Add("Level", "high")
$myObject.Add("Privilege", "Elevated")
[pscustomobject] $myObject | ft
Что я нашел
Когда вы печатаете $ myObject, затем добавляете данные, данные добавляются, но не отображаются. Это связано с каким-то неизвестным мне внутренним механизмом, который продолжает использовать те же заголовки из предыдущей команды.
Если вы заметили, данные печатаются дважды под одним заголовком. Если вы хотите увидеть различия до и после, направьте их в формат-список или таблицу-формат, чтобы каждый раз использовать другой выходной поток.
$myObject = [PSCustomObject]@{
ComputerName = "abc"
Data = "xxx"
}
$myObject | ft
$myObject | Add-Member -NotePropertyName Level -NotePropertyValue High -Force
$myObject | Add-Member Privilege Elevated
$myObject | ft