1

我正在使用 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
} 

有人可以帮我找到请求的结果,还是有人有另一个脚本可以做到这一点?

谢谢

4

1 回答 1

0

首先重写创建 PS 自定义对象所需的内容,然后使用 export-csv 从这些对象创建输出文件。

于 2013-02-11T13:12:28.393 回答