有时我被要求提供对特定 Exchange 2007 邮箱具有完全访问权限的用户列表。目前我正在手动执行此操作,理想情况下我希望使用 Powershell 来执行此操作。
无论如何要生成完全访问权限列表(并且代表发送权限也很有用)。
谢谢,乔尼
有时我被要求提供对特定 Exchange 2007 邮箱具有完全访问权限的用户列表。目前我正在手动执行此操作,理想情况下我希望使用 Powershell 来执行此操作。
无论如何要生成完全访问权限列表(并且代表发送权限也很有用)。
谢谢,乔尼
Send-As 权限存储在活动目录中,因此获取它们有点棘手。如果您想从两个结果中组合您关心的属性,您可以使用 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"}
除了 Slipsecs 答案之外,还有一种替代 Send-As 权限审核的方法。
$(Get-Mailbox -Identity mailboxName).GrantSendOnBehalfTo | ft Name
这只会返回手动添加的用户,而不会返回自动生成的用户。
再次感谢 Slipsec 在这方面的帮助!
get-mailbox -identity MailBoxName | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
如果您正在为特定邮箱上的用户寻找权限。将 MailBoxName 替换为您尝试运行报告的邮箱的确切名称。对于邮箱名称和别名,它是 KeySensitive。
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
在上面的命令中,我是用邮箱还是用户名替换 foo ?我尝试了该命令,它说无法绑定,因为对象为空 - 将感谢您的帮助。
我知道这是旧的,但以防万一其他人遇到此线程寻求帮助,回答 OPs 最后一个问题,$foo
表示您必须在运行命令之前定义的变量,例如:
$foo = 'Example User'
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights