Я предполагаю, что «Джек Робинсон» должен быть примером ввода. Как вы понимаете, это приглашение, которое Read-Host
покажет пользователю. Вы, вероятно, хотите что-то вроде этого:
$Names = Read-Host "Enter the name"
Разделение имени и фамилии на основе пробелов никогда не бывает надежным, особенно в случае двух или трехсловных фамилий. Таким образом, вы должны либо разделить приглашение на первое и последнее, как показано в ответе Итчидона, или вы можете использовать разрешение неоднозначных имен (ANR), что позволит вам выполнять поиск по полному имени. Это выглядело бы примерно так:
$Names = Read-Host "Enter the name"
$Usernames =
Get-ADUser -LDAPFilter "(anr=$Names)" -Properties 'SamAccountName' |
Select-Object -ExpandProperty 'SamAccountName'
Поиск по имени и фамилии никогда не является точной наукой, поскольку в вашей организации может быть несколько человек с одинаковыми именами, но ANR делает это немного хуже потому что это «содержит» вид поиска. Поэтому, если вы ищете мое имя, например, «Габриэль Люси», вы также найдете «Габриэле Лучано».
Это зависит только от вашего использования. Если ваш пользователь будет выбирать правильную учетную запись, то ANR - это простой способ найти учетные записи. Но если это часть некоторой автоматизации, где вы хотите точно сопоставить имена, вам придется разделить имя и фамилию на входе и искать точные совпадения.