Правильный способ добавить строковое свойство к существующему объекту Powershell? - PullRequest
0 голосов
/ 05 ноября 2018

Так, например, у меня есть пользовательский объект для $server. Я хочу создать новое свойство $server.output, которое будет содержать многострочный вывод различного размера. Каков наилучший подход? Кажется, в Интернете нет прямой информации о том, как добавить простые строковые свойства к объектам?

К вашему сведению, я использую powershell v4, но было бы неплохо найти решение и для v5.

1 Ответ

0 голосов
/ 05 ноября 2018

Помимо повторного создания объекта или обеспечения наличия свойства при инициализации объекта, вы должны использовать Add-Member для создания новых свойств в pscustomobject:

# alternatively, use `-Force` on `Add-Member`
if (-not ($obj | Get-Member -Name output))
{
    $obj | Add-Member -MemberType NoteProperty -Name output -Value ''
}

Поддерживается в v3 +:

$obj | Add-Member -NotePropertyName output -NotePropertyValue '' -Force

Добавить несколько участников:

$obj | Add-Member -NotePropertyMembers @{output = ''; output1 = ''} -Force

Add-Member

...