Я пытаюсь создать динамическое меню терминала, из которого пользователь может выбирать в Powershell. На данный момент у меня есть код для отображения меню, но не как сохранить правильное значение в переменной:
$ouCounter=1
Write-Host "`n Please Select OU"
foreach ($ouEntry in ((Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -
SearchBase 'OU=Resources,DC=dept,DC=ad,DC=domain,DC=tld' -SearchScope OneLevel).Name)){
Write-Host $(" "+$ouCounter+".`t"+$ouEntry)
$ouCounter++
}
[int]$menuSelection = Read-Host "`n Enter Option Number"
Это даст:
Please Select OU
1. HR
2. Accounting
3. Manufacturing
4. PR
5. Executives
Enter Option Number:
Конечно, когда я выбираю 4
, например, $menuSelection
возвращает 4
, а не PR
.
И поскольку я не знаю, каким будет содержимое списка, поскольку новые организационные единицы AD могут быть добавлены в любое время, я не уверен, как это сделать.
Я также хотел бы выяснить, как добавить некоторую логику, которая будет отображаться только за исключением чисел в первом столбце, например, если я введу 6
, мне будет предложено повторить попытку, пока не будет получено число, которое было в списке. Но опять же это число будет меняться в зависимости от количества присутствующих подразделений.