Get-Mailbox权限

时间:2017-08-24 10:42:20

标签: powershell exchange-server

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

  • 返回特定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地址。

2 个答案:

答案 0 :(得分:0)

我使用了以下内容:

$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

    }

答案 1 :(得分:0)

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

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的各种内置帐户,这可能会产生超出您想要的噪音。