Итак, у меня возникла проблема, перечислимая через цикл forEach в PowerShell (v3) и добавление оцениваемой переменной, а также результат тестового соединения в массив. Я пытаюсь сделать $ arrPing многомерным массивом, так как это облегчит мне фильтрацию и обработку объектов там позже в скрипте, но я сталкиваюсь с проблемами с кодом.PowerShell - Не создает Jagged Array в цикле forEach
Мой код выглядит следующим образом:
$arrPing= @();
$strKioskIpAddress= (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $null }).ipaddress
...FURTHER DOWN THE CODE...
$tmpIpAddress= Select-Xml -Path $dirKioskIpAddresses -XPath '//kiosks/kiosk' | Select-Object -ExpandProperty Node
forEach ($entry in $tmpIpAddress)
{
if ($entry -ne $strKioskIpAddress)
{
$result= Test-Connection -ComputerName $entry -Count 1 -BufferSize 16 -Quiet -ErrorAction SilentlyContinue
$arrPing+= @($entry,$result);
}
}
Но я получаю следующий результат, когда я отобразить содержимое переменной $ arrPing:
PS H:\Documents\PowerShell Scripts> $arrPing
10.216.1.134
True
10.216.1.139
True
10.216.23.230
True
10.216.23.196
False
10.216.23.23
False
Может кто-нибудь сказать мне, где я «Не так? У меня есть ощущение, что это происходит потому, что я нахожусь в цикле ForEach, но я просто не могу сказать наверняка ...
Ну, массивы в пределах $ arrPing будет иметь два значения данных в них, но это динамический массив так что технически это будет классифицироваться как зазубренный я полагаю. В идеале я просто хочу, чтобы данные были сопряжены вместе - этот скрипт предназначен для загрузки на тысячи компьютеров, и он будет использовать эти данные и попытаться выполнить некоторые команды FTP для извлечения файла. Эти данные будут использоваться для фильтрации компьютеров, которые не находятся в сети (по разным причинам), или отключены, поэтому отображение вывода в формате таблицы не имеет значения. – Fredulom