2010-01-04 64 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。

相關問題