Exchange Powershell:所有日历的Get-MailboxFolderPermission

时间:2018-11-30 14:58:08

标签: powershell exchange-server

我一直在研究一个脚本,一次显示一个用户,一次显示所有邮箱的权限。不幸的是,由于Get-MailboxFolderPermission命令中的-Identity属性不接受通配符,因此这变得有些复杂和混乱。

我已经开始使用数组来存储所有邮箱,因此我可以遍历它并在每个邮箱上运行命令,但是由于无法缩小任何邮箱,因此我无法使其工作我的输出只是电子邮件地址。这是我最近的迭代:

$Mailboxes = Get-Mailbox | Select Name -ExpandProperty EmailAddresses | Select AddressString
$MailboxList = @()
Foreach ($Box in $Mailboxes) {
    $BoxName = Out-String -InputObject $Box
    echo $BoxName | Out-File "box.txt"
    $BoxName = Select-String "box.txt" -Pattern "\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"
    echo $BoxName
    $MailboxList += $BoxName
    }

此代码的问题是$ BoxName变量附带了“ box.txt:4:”文本。尝试使用-Replace删除该文本导致添加了完整的文件路径。

我对Powershell还是很陌生,所以即使这是完全错误的方法,我也希望能获得一些有关如何在此处执行操作的指示。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以尝试使用以下命令显示所有邮箱的权限:

 Get-Mailbox -Resultsize unlimited | Get-MailboxPermission | Where { ($_.IsInherited -eq $False) -and -not ($_.User -like "NT AUTHORITY\SELF") } | Select Identity,user,AccessRights

有关更多信息,请参考此链接:

Get-MailboxPermission for multiple (all) users