У меня проблемы с созданием динамического меню из записей разрешений почтовых ящиков в PowerShell.Приведенная ниже функция получает список записей разрешений для выбранного почтового ящика и выводит таблицу.
Function AuditSingleMailboxPermission($mbox) {
If ($mbox -like $null){
Write-Host "Please select the mailbox from the list below"
$mbox = SelectMailbox
}
$mboxPermissions = Get-MailboxPermission $mbox | where {$_.User -like "*@*"}
Return $mboxPermissions
}
Следующая функция использует вывод предыдущего для построения меню.
Function SelectMailboxPermission($mbox) {
$rights = (AuditSingleMailboxPermission -mbox $mbox).User
Write-Host $rights
$menu = @{}
for ($i=1;$i -le $rights.count; $i++) {
Write-Host "$i. $($rights[$i-1])"
$menu.Add($i,($rights[$i-1]))
}
[int]$ans = Read-Host "Enter selection"
$selection = $menu.Item($ans)
Return $selection
}
Строка прав доступа Write-Host $ показывает полное имя пользователя.Однако меню возвращает только первую букву имени пользователя.Это проблема, потому что выходные данные этой функции используются для удаления пользовательских разрешений в почтовом ящике.Я не могу понять это ради моей жизни.