Если вам действительно нужен массив массивов (тип [array[]]
), ваша проблема решается следующим образом:
$nodes[0][0].slot[0] = "b"
То есть каждый из ваших $nodes
элементов сам является массивом, и как вы заполнили $nodes
, каждый экземпляр [pscustomobject]
, выводимый вашим get-NcNode | select-object ...
конвейером, стал отдельным элементом $nodes
, но каждый как одноэлементный подмассив - отсюда необходимость в дополнительном доступе к индексу [0]
. [1]
Однако, похоже, что в вашем случае достаточно обычного массива ([array]
, фактически то же, что [object[]]
), где каждый элемент содержит (одиночный, скалярный) [pscustomobject]
:
# Type constraint [array] creates a regular [object[]] array.
[array] $nodes = get-NcNode | select-object -property Node, @{Label = "slot"; expression = {@("a")*4}}
С таким определением $nodes
ваш исходный код должен работать.
[1] При получении значения - но не при настройке - вы можете обойтись без дополнительного индекса благодаря перечислению элементов * 1034 в PowerShell. * особенность.