Exchange 2013 之批量創建用戶郵箱文件夾
【前言】
在用戶日常使用 outlook 收發郵件過程中,為了便於查看來自不同發件人的郵件,通常
會新建若干個用戶郵箱文件夾,並創建對應的規則,將接收的郵件進行分類。作為郵件系統
管理員,可能希望在服務器端為用戶批量創建用戶郵箱文件夾,並將來自公司的重要通知放
到該文件夾下,避免用戶因為每天郵件量太大,沒有第一時間看到公司的重要通知,從而耽
誤了工作的情況發生。
本文通過使用 powershell 命令,在服務器端批量為用戶創建用戶郵箱文件夾,並設置
OWA 傳輸規則,將接收至特定主題的郵件放在我們新建的用戶郵箱文件夾下。
【正文】
一、 New-MailboxFolder 命令的使用範圍
可能大家在看到標題的時候,首先會想到使用 New-MailboxFolder cmdlet 來為用戶創
建郵箱文件夾。但是在使用中會發現,這一條命令只能夠為用戶自己創建郵箱文件夾,並不
能夠給其他用戶進行創建,即使你具有郵件系統管理員的權限;
通過查看 New-MailboxFolder cmdlet 的權限範圍,我們可以發現收件人的讀寫範圍僅
僅是用戶自己,沒有權限為他人創建郵箱文件夾。根據官方資料說明,即使人為地修改這兩
個值,也會被 Overwritten 掉。如下圖所示:
二、為用戶批量創建郵箱文件夾:
為了能夠實現服務器為其他用戶創建郵箱文件夾,需要進行如下兩個準備工作:
1. 安裝 EWS API,如下圖所示:
2. 準備專門的 powershell 腳本Create-Folders.zip
有興趣的可以研究一下:
3. 使用此腳本創建單個用戶的郵箱文件夾,運行如下命令,為用戶 exadmin 在收件箱
下創建一個名稱為"personal"的文件夾:
.\Create-Folders.ps1 [email protected] "personal"
4. 單個用戶測試通過後,我們為所有用戶創建郵箱文件夾,運行如下命令:
Get-Mailbox |foreach {try {.\Create-Folders.ps1 $_.primarysmtpaddress
"personal" -Impersonate}catch{}}
5. 需要特別指出的是,如果在創建過程中,發現用戶已經存在此郵箱文件夾,則會提
示該文件夾已經存在,跳過此郵箱;同時,該腳本不僅僅只能在收件箱下創建文件
夾,還可以在其他路徑下進行郵箱文件夾的創建。
三、統一設置收件箱規則
使用 New-InboxRule cmdlet 命令可以為所有用戶設置收件箱規則,進而實現將特定主
題的郵件投遞到我們前面創建的"personal"文件夾下。為此,需要執行以下步驟:
1. 賦予郵件管理員對所有郵箱完全訪問的權限,運行如下命令:
Get-Mailbox |Add-MailboxFolderPermission -AccessRights fullaccess -User
exadmin
2. 以 exadmin 身份打開 EMS,運行如下命令,創建規則:
Get-Mailbox |foreach {New-InboxRule -Mailbox $_.alias -Name MoveMail -
SubjectContainsWords "test" –MoveToFolder $($_.alias):\收件箱\personal }
3. 需要特別注意的是,當您使用 Outlook Web App 創建、修改、刪除、啟用或禁用
收件箱規則時,使用 MicrosoftOutlook 禁用的任何規則都將被刪除。
最後,附上腳本鏈接https://pan.baidu.com/s/1arcf-EMj1-qKwIWTKLODqA 密碼: 2gsw
閱讀更多 一不小心7332789 的文章