【问题标题】:Get-Mailbox Permissions获取邮箱权限
【发布时间】:2018-02-02 05:03:12
【问题描述】:

我的任务是创建一个脚本,它将:

  • 返回某个OU内的所有邮箱
  • 显示有权访问每个邮箱的所有用户
  • 显示每个邮箱的主 SMTP 地址

我已设法执行以下操作,返回邮箱及其主 SMTP 地址:

$Mailboxes = Get-Mailbox -OrganizationalUnit "OU Goes Here" -ResultSize Unlimited |
             Select-Object DisplayName,PrimarySmtpAddress

我还创建了另一个脚本,它返回每个邮箱中的所有用户:

$Mailboxes = Get-Mailbox -OrganizationalUnit "OU Goes Here"

foreach ($mailbox in $Mailboxes) {
    Get-MailboxPermission -Identity $mailbox -ResultSize Unlimited |
        select identity, user |
        Format-Table -Wrap
}

但是,我很难将这两者通过管道连接在一起,以便在同一输出中恢复邮箱、用户和 SMTP 地址。

【问题讨论】:

  • 你打算如何合并这些。结果集没有一对一的关系,那么一些示例输出会是什么样子?

标签: powershell exchange-server


【解决方案1】:

我得到它与以下工作:

$Mailboxes = Get-Mailbox -OrganizationalUnit "OU Goes Here"

    foreach ($mailbox in $Mailboxes) {

    Get-MailboxPermission -identity $mailbox -ResultSize unlimited | select @{Label="Name";Expression= {$MailBox.DisplayName}},@{Label="Email";Expression= {$MailBox.PrimarySMTPAddress}},identity, user  | Format-Table -Wrap

    }

【讨论】:

    【解决方案2】:

    这应该得到你想要的。您必须决定如何解析权限。

    Get-Mailbox -OrganizationalUnit "OU Goes Here" -ResultSize Unlimited | 
        Select PrimarySmtpAddress,DisplayName,Identity | 
        % { 
            $MB=$_; 
            $Perm = $(Get-MailboxPermission -Identity $MB.identity -ResultSize Unlimited | select identity, user); 
    
            New-Object PSObject -Property @{ DisplayName=$_.DisplayName; PrimarySmtpAddress=$_.primarySmtpAddress; Permissions=$perm } 
        }
    

    例如,您可以通过管道连接到另一个选择以扩展属性

    | select * -ExpandProperty Permissions
    

    这还将显示所有各种内置的 Exchange 帐户,这些帐户可能会产生比您想要的更多的噪音。

    【讨论】:

      猜你喜欢
      • 2013-08-15
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2014-01-05
      • 2011-11-20
      • 2019-01-09
      • 2010-10-04
      • 2022-01-23
      相关资源
      最近更新 更多