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
}
誰かが要求された結果を見つけるのを手伝ってくれますか、または誰かが同じことをする別のスクリプトを持っていますか?
ありがとう