Поскольку $ b является типом Object [], то вы, вероятно, захотите создать объект Where-Object.
$b | Where-Object -FilterScript {$_.Samaccountname -like '*Smith*'} | Select-Object -ExpandProperty 'telephoneNumber'
При этом массив в Powershell можно индексировать без учета регистра, если он преобразуется в тип [Collections.Generic.List [Object]].
$b = [Collections.Generic.List[Object]]$b
$b.FindIndex( {$args[0].sAMAccountName -eq 'test'} )
Обратите внимание, что извлечение каждого отдельного пользовательского объекта в AD и фильтрация с использованием сопоставления where-object или index могут быть очень медленными.Вместо этого вы можете при необходимости получить Get-ADUser или вытянуть все ADusers, используя фильтр, который вытягивает только пользователей, возвращенных в $ a.
Если вы настаиваете, чтобы все ADUsers были в одном месте одним нажатием, рассмотрите возможность циклического перемещения по списку.один раз для поиска хеша, чтобы вы могли легко проиндексировать значение хеша.
#Create account lookup hash
$accountlookup = @{}
foreach ($element in $accounts) {
$accountlookup[$element.SamAccountName] = $element
}
Надеюсь, это поможет!