我正在使用 Exchange 2010,而我的域只有 Windows 2003 DC
我需要一个 Powershell 脚本,在 csv 文件中列出某个交换数据库的所有(组)邮箱,并为每个邮箱提供以下信息:
- 显示名称
- 邮箱中的主 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
}
有人可以帮我找到请求的结果,还是有人有另一个脚本可以做到这一点?
谢谢