2010-01-04 78 views
1

有时我会被要求提供对特定Exchange 2007邮箱具有完全访问权限的用户列表。目前我正在手动执行此操作,并且我最好喜欢使用Powershell来完成此操作。使用Powershell审核Exchange 2007邮箱完全访问权限

有没有办法产生一个完全访问权限列表(以及代表发送权限也是有用的)。

感谢, 强尼

回答

1

发送-As权限都存储在Active Directory中,所以这是一个有点棘手得到他们。如果您想将两个结果中您关心的属性组合起来,可以使用Add-Member。

完全访问:

get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 

发送-作为:

get-mailbox | %{$mailbox = $_; Get-ADPermission $mailbox.DistinguishedName | ?{$_.ExtendedRights -like "Send-As" -and $_.User -notlike "NT AUTHORITY\SELF"}} | ft {$mailbox},user,{"Send-As"} 
+0

Hi Slipsec!完全访问一个像魅力工作!谢谢!我也在下面回答了一个替代方案,这个替代方案是我在昨天尝试这个时发现的。 – Jonny 2010-01-05 16:19:02

2

除了Slipsecs回答有到发送-As权限审核的替代品。

$(Get-Mailbox -Identity mailboxName).GrantSendOnBehalfTo | ft Name 

这只返回手动添加的用户,没有自动生成的用户。

再次感谢Slipsec与您的帮助!

+1

我不认为这是一个“替代”,而是其他的东西(尽管许多管理员倾向于设置两者,因为他们不了解差异)。 AFAIK,'GrantSentOnBehalfTo'对应于“代表发送”权限(又名“代表”)而不是“代理发送”权限?两者之间的主要行为差异在于,除了代表您发送的地址之外,使用“代表发送”,收件人仍可以看到实际发件人的地址。使用“发送方式”,没有任何第三方参与发送消息。 – 2011-11-30 13:00:03

0

get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights

在上述命令

,是否与邮箱或用户名替换FOO?我试过这个命令,它说无法绑定,因为对象为空 - 将感谢您的帮助。

+0

不,$ foo不需要改变。 $ foo被设置为每个邮箱对象,因为正在管理Get-Mailbox。因此,每个邮箱都保存在$ _中,然后分配给$ foo,并可以在初始管道外访问。 – Jonny 2010-12-02 10:57:30

0

我知道这是旧的,但只是为了防止其他人遇到此线程寻找帮助,回答OP最后一个问题,$foo代表您必须在运行命令之前定义的变量,例如:

$foo = 'Example User' 

get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 
+1

oops,没有完全读取命令,$ foo已被get-mailbox定义 – private 2011-10-23 20:04:34

1
get-mailbox -identity MailBoxName | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 

如果您正在寻找权限在特定的邮箱用户。将MailBoxName替换为您尝试运行报表的邮箱的确切名称。它对于邮箱和别名的名称是KeySensitive。

相关问题