2017-08-24 7 views
0

私がするスクリプトの作成を担当してきた:特定のOU のGet-メールボックスのアクセス許可

    • 戻り、すべてのメールボックスが各メールボックスへのアクセス権を持つすべてのユーザー
    • は、主に表示を表示します各メールボックスの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アドレスは同じ出力にあります。

  • +0

    どのようにこれらをマージするつもりですか?結果セットには1対1の関係がないため、サンプル出力はどのように見えますか? – Matt

    答えて

    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 
    
        } 
    
    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 } 
        } 
    

    あなたは別の選択に例のパイプのプロパティまた、これはあなたが望むよりも多くのノイズを作成することがExchangeのアカウントの様々な特注のすべてが表示されます

    | select * -ExpandProperty Permissions 
    

    を拡大することができます。

    関連する問題