Как уже упоминалось в комментариях, неясно, ожидаете ли вы массив, содержащий объекты (ключи и значения) или просто строку.
Если вы после перечисления записей сохраняете пары имя / значение, вы можете просто использовать метод GetEnumerator
и преобразовать его в массив (встраивая в @(...)
):
$Array = @($HashTable.GetEnumerator())
$Array[2].Name
AS
$Array[2].Value
ABM,AC8,AKH
Если вы действительно ищете строку, вы можете легко объединить пары имя / значение в массиве результатов на лету:
$Array | ForEach-Object {"$($_.Name)`t$($_.Value)"}
P1 ABN,ABB,ABY
JP BJ,ACF
AS ABM,AC8,AKH
S2 AKS,AKE
RU ACB
Кроме того, вы по-прежнему можете искать в массиве с помощью командлета Where-Object
, например ::
$Array | Where-Object {$_.Name -eq 'AS'}
Name Value
---- -----
AS ABM,AC8,AKH