1

Exchange 2010 を使用しており、ドメインには Windows 2003 DC しかありません

特定の交換データベースのすべての (グループ) メールボックスを csv ファイルにリストし、各メールボックスについて次の情報を提供する Powershell スクリプトが必要です。

  • 表示名
  • メールボックスのプライマリ SMTP アドレス
  • メールボックスの既存のすべてのエイリアス
  • メールボックスの所有者のプライマリ SMTP アドレス
  • メールボックスの読み取りアクセス許可を持つすべてのメンバーのプライマリ SMTP アドレス
  • メールボックスで send-as アクセス許可を持つすべてのメンバーのプライマリ SMTP アドレス
  • メールボックスへのフル アクセス許可を持つすべてのメンバーのプライマリ SMTP アドレス

私はすでに良いスタートである小さなプログラムを書いていますが、メンバーユーザーをプライマリSMTPアドレスで表現することはできません:

次に例を示します。

$OutFile = "<Certain path>\<filename>_" + $(Get-Date -Format 'dd_MM_yyyy HH_mm tt') + ".csv"

"DisplayName" + "," + "EmailAddresses" + "," + "Full Access" + "," + "Send As" + "," + "ReadPermission" | Out-File $OutFile -Force

$Mailboxes = Get-Mailbox -Database "<Certain Database>" -ResultSize "Unlimited" | Select DistinguishedName, Identity, DisplayName, EmailAddresses
ForEach ($Mailbox in $Mailboxes) {
    $SendAs = Get-ADPermission $Mailbox.DistinguishedName | ? {$_.ExtendedRights -like "Send-As" -and $_.User -notlike "NT AUTHORITY\Self" -and !$_.IsInherited} | % {$_.User}      
    $FullAccess = Get-MailboxPermission $Mailbox.Identity | ? {$_.AccessRights -eq "FullAccess" -and !$_.IsInherited} | % {$_.User}         
    $ReadPermission = Get-MailboxPermission $Mailbox.Identity | ? {$_.AccessRights -eq "ReadPermission" -and !$_.IsInherited} | % {$_.User}         

    $Mailbox.DisplayName + "," + $Mailbox.EmailAddresses + "," + $FullAccess + "," + $SendAs + "," + $ReadPermission | Out-File $OutFile -Append
} 

誰かが要求された結果を見つけるのを手伝ってくれますか、または誰かが同じことをする別のスクリプトを持っていますか?

ありがとう

4

1 に答える 1

0

まず、PS カスタム オブジェクトを作成するために必要なものを書き直し、export-csv を使用してそれらから出力ファイルを作成します。

于 2013-02-11T13:12:28.393 に答える