【发布时间】:2018-11-22 22:36:58
【问题描述】:
我在 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 $rights 行显示完整的用户名。但是,菜单只返回用户名的第一个字母。这是一个问题,因为此函数的输出用于删除邮箱的用户权限。我这辈子都想不通。
【问题讨论】:
-
试试
$menu.Add($i,$($rights[$i-1]))。我想你忘记了美元符号
标签: powershell