У меня есть функция, которая создает многомерный массив для списка серверов, которые мы готовим к выводу из эксплуатации.Массив будет иметь несколько полей, таких как имя сервера, количество процессоров, память, хранилище в сети SAN и т. Д. И т. Д. Если он не найдет информацию, которую ищет в одной системе, такой как vCenter, он будет выглядетьво вторичной системе, такой как AD или CMDB.Все это работает как задумано.
То, что я ищу, - это эффективный способ циклически проходить по каждой строке в массиве, а затем по каждому индексу этой строки в поисках пустых или пустых элементов.Например, если для сервера FileSrv018 возвращается, что IP-адрес пуст, я хочу предложить пользователю вручную ввести эту информацию.Я мог бы написать кучу операторов if, например:
if ($row.CPU -eq $null) {
}
elseif ($row.IP -eq $null) {
}
... но я действительно не хочу проходить через это.Мне просто любопытно, есть ли способ дать мне каждый «столбец» (я понимаю, что у массивов нет имен столбцов) в цикле foreach.Я могу сделать это с помощью объекта PSObject следующим образом:
$columns = $decom.PSObject.Properties | Where-Object { $_.MemberType -eq 'NoteProperty' } | Select-Object -ExpandProperty Name
, но еще не нашел что-то подобное с массивом.Просто любопытно, если у кого-нибудь есть предложения.