Cách xóa bỏ phần domain SMTP cũ khỏi mailbox Exchange 2007 ?

thuy linh
thuy linh
Trả lời 13 năm trước

Bài viết này được thực hiện dựa trên hoàn cảnh như sau: công ty, tổ chức nơi bạn đang làm việc đã trải qua nhiều thương vụ mua bán và thay đổi trong nhiều năm. Trong suốt quá trình đó, một số domain SMTP đã không còn thuộc quyền sở hữu, và do vậy phải xóa bỏ chúng khỏi danh sách Accepted Domains trong Exchange 2007 và E-mail Address Policies.

Nhưng vấn đề ở đây là khi thực hiện thao tác này thì lại không thể xóa bỏ được những địa chỉ email đã từng liên kết với phần dữ liệu mailbox của người sử dụng.

Ví dụ cụ thể hơn như sau, công ty A đã tiến hành bán chi nhánh hoạt động với phần domain OLDDOMAIN.com, do vậy công ty A chính thức không còn sở hữu tên miền đó nữa và sẽ cần phải xóa bỏ toàn bộ các thành phần có liên quan đến OLDDOMAIN.com khỏi hệ thống.


Ảnh chụp màn hình thuộc tính của 1 tài khoản bất kỳ trước khi chúng ta tiếp tục xử lý

Vì trên thực tế, không có chức năng xóa bỏ tên miền cũ khỏi hệ thống từ danh sách E - mail Addresses của người sử dụng (hay còn gọi là ProxyAddresses), chúng ta có thể xử lý theo cách thủ công trong từng phần mailbox để xóa bỏ các thành phần địa chỉ cũ, hoặc là sử dụng PowerShell để xử lý hàng loạt.

Một số giả định được đưa ra dựa theo nhu cầu của người sử dụng:

- Bạn muốn sử dụng chức năng này trên từng mailbox của domain

- Bạn có đầy đủ quyền quản trị hoặc ít nhất là được phân quyền chính xác để quản lý toàn bộ phần mailbox

- Sử dụng chức năng này từ Exchange Management Shell

- Thay thế OLDDOMAIN.com với thành phần tên domain muốn xóa bỏ khỏi các địa chỉ email

Đoạn mã được sử dụng trong tình huống giả định này như sau:

#Get all mailboxes into an Array
$mbxs = @(get-mailbox -Resultsize Unlimited)

#Iterate through each mailbox
foreach ($mbx in $mbxs)
{

#Create two copies of the email addresses in the returned mailbox
$CurrentList = $mbx.emailaddresses
#the second copy is the one where the changes will take place.
$NewList = $mbx.emailaddresses

#Iterate through each address in the address list.
foreach ($Address in $CurrentList)
{

#see if the current address matches the domain you are wanting to remove
if ($Address.tostring() -match "OLDDOMAIN.com")
{

#If the match is found, remove that address from the list.
$NewList -= $Address

}

}

#Overwrite the old list with the new list.
set-mailbox $mbx -emailaddresses $NewList

}

Khi hoàn tất bài thử nghiệm trên bằng đoạn mã vừa được cung cấp, kết quả thu được rất khả quan, do vậy sẽ mang lại hiệu quả rất lớn khi áp dụng vào thực tế.


Toàn bộ phần địa chỉ SMTP OLDDOMAIN.com đã được xóa bỏ thành công

Nhưng mọi người cần lưu ý rằng đoạn mã trên chỉ hoạt động trên nền tảng Exchange 2007, không có tác dụng với Exchange 2010. Chúc các bạn thành công!