【问题标题】:Exchange Powershell: Get-MailboxFolderPermission for all calendarsExchange Powershell:所有日历的 Get-MailboxFolderPermission
【发布时间】:2018-12-01 09:22:57
【问题描述】:

我一直在编写一个脚本来一次显示某个用户的所有邮箱的权限。不幸的是,由于 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.获取邮箱列表2.遍历邮箱列表,获取每个邮箱的特定用户的访问权限:列表中的\日历

标签: powershell exchange-server


【解决方案1】:

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

 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多