У меня есть переменная, которая содержит следующее:
Site IP
walmart 10.20.30.40
walmart 10.20.30.41
walmart 10.20.30.42
target 10.20.30.50
target 10.20.30.51
hm 10.20.30.60
Это объект, созданный с использованием New-Object psobject -Property @{ site = <code> ; IP = <code> }
. Так что, если я позвоню $obj.site
, он перечислит только сайты и то же самое с IP.
Я хочу преобразовать это в массив , сгруппированный по сайтам .
Например, вывод результата должен выглядеть следующим образом:
walmart : {10.20.30.40, 10.20.30.41, 10.20.30.42}
target : {10.20.30.50, 10.20.30.51}
hm : {10.20.30.60}
Я хочу иметь возможность вызывать это из моего скрипта, например, по причинам, таким как добавление или вычитание IP на любом сайте. Например:
$myArray.target
Какой список IP-адресов должен содержать:
10.20.30.50
10.20.30.51
Вместо того же формата - {10.20.30.50, 10.20.30.51}
Тогда я бы добавил больше IP-адресов к этому объекту, используя метод Add.
($myArray.walmart).Add("10.20.30.44")
Самое близкое, что я смог получить, это следующее (и его вывод):
$obj | Group-Object -Property Site | Select-Object Name,Group
Name Group
walmart {@{Site=walmart; IP=10.20.30.40}, @{Site=walmart; IP=10.20.30.41}, @{Site=walmart; IP=10.20.30.42}
target {@{Site=target; IP=10.20.30.50}, @{Site=target; IP=10.20.30.51}
hm {@{Site=hm; IP=10.20.30.60}
С этим выводом я не могу позвонить на конкретный сайт, например $myArray.walmart
.
Я довольно новичок в powershell, чего мне не хватает? Любая помощь будет высоко ценится!