Exchange
刪除所有郵箱的 Exchange 2010 自動映射的腳本
我有一台 Exchange 2010 SP3 伺服器,它從 MSExchangeIS 收到應用程序事件錯誤 9646:
馬皮會議
$$ ID $$ $$ AD User $$超過 500 個“objtFolder”類型對象的最大值 對此進行調查,發現原因是幾個使用者對其他人的郵箱具有大量完全訪問權限。
由於 SP1 中這種變化的方式,請參見此處的 Technet 文章,他們現在會自動打開他們有權訪問的所有使用者,而不是僅在需要時才能添加或打開它們。
理想情況下,我想要一個我可以執行的腳本來全域刪除所有使用者的 -Automapping $true 字元串:這應該讓他們在需要時訪問郵箱,但阻止它自動打開,佔用 MAPI 會話。
我從上面的 URL 嘗試了 Microsoft Technet 腳本,但這似乎沒有按預期工作:
[PS]$FixAutoMapping = Get-MailboxPermission sharedmailbox|where {$_AccessRights -eq "FullAccess" -and $_IsInherited -eq $false} The operation couldn't be performed because object sharedmailbox couldn't be found on '[Servername]'. + CategoryInfo : InvalidData: (:) [Get-MailboxPermission], ManagementObjectNotFoundException + FullyQualifiedErrorId : B485A4C7,Microsoft.Exchange.Management.RecipientTasks.GetMailboxPermission
我假設 sharedmailbox 是我的伺服器上不存在的特定範例郵箱:我需要一個腳本來搜尋所有郵箱,然後更改自動映射 $ true to Automapping $ 對郵箱的任何訪問權限為 false。
這可能嗎?
這非常容易。您只需要檢索郵箱列表並針對每個郵箱執行範例:
# Get all mailboxes in the forest $Mailboxes = Get-Mailbox -ResultSize unlimited -IgnoreDefaultScope $ConfirmPreference = 'None' # Iterate over each mailbox foreach($Mailbox in $Mailboxes) { try { # Try to run the example fix against the current $Mailbox $FixAutoMapping = Get-MailboxPermission $Mailbox |where {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false} $FixAutoMapping | Remove-MailboxPermission $FixAutoMapping | ForEach {Add-MailboxPermission -Identity $_.Identity -User $_.User -AccessRights:FullAccess -AutoMapping $false} } catch { # Inform about the error if unsuccessful Write-Host "Encountered error: $($Error[0].Exception) on mailbox $($Mailbox.DisplayName)" -ForegroundColor Red } }