Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Thư Điện Tử

Xuất Danh sách địa chỉ toàn cục (GAL) Exchange hoặc Office 365 ra CSV

Xem xét các cách xuất Danh sách địa chỉ toàn cục (Global Address List - GAL) hoặc Sổ địa chỉ ngoại tuyến của Exchange ra file văn bản CSV. GAL chứa tất cả địa chỉ email của tổ chức Exchange on-prem hoặc tenant Exchange Online (Office 365). File CSV danh sách liên hệ từ sổ địa chỉ doanh nghiệp có thể dùng để chuyển và nhập liên hệ vào các client email hoặc dịch vụ email bên thứ ba.

Xử lý các công cụ xuất: có thể là Exchange Admin Center, PowerShell, MS Access, Outlook, hoặc tiện ích csvde.

Cách xuất Global Address List ra CSV trên Exchange Server on-prem?

Cách dễ nhất là xuất danh sách địa chỉ trực tiếp từ console Exchange Admin Center (EAC). Vào Recipients → Mailbox, nhấp …, chọn Export data to a CSV file.

Tiếp theo, chọn các thuộc tính người dùng muốn xuất ra file CSV.

Tuy nhiên, cách này chỉ xuất địa chỉ email của người dùng. Để xuất địa chỉ nhóm phân phối, vào Groups và xuất từ đó (tương tự Contacts, Resources, Shares).

Để lấy danh sách địa chỉ trong domain, dùng cmdlet PowerShell Get-Recipient. Ví dụ: hiển thị tên người dùng, địa chỉ SMTP chính và số điện thoại. Kết nối Exchange Server từ PowerShell và chạy:

Get-Recipient| Select-Object Name,PrimarySmtpAddress, Phone

Để chỉ hiển thị các mục trong Default Global Address List, dùng bộ lọc:

$filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter
Get-Recipient -ResultSize unlimited -RecipientPreviewFilter $filter | Select-Object Name,PrimarySmtpAddress, Phone

Kết quả Get-Recipient giới hạn 1000 đối tượng. Để lấy nhiều địa chỉ hơn, dùng tham số -ResultSize Unlimited.

Để loại trừ các mục ẩn khỏi sổ địa chỉ (thuộc tính HiddenFromAddressLists). Dùng Export-CSV để xuất kết quả ra file CSV:

Get-Recipient -RecipientPreviewFilter $filter | Where-Object {$_.HiddenFromAddressListsEnabled -ne $true} | Select-Object Name,PrimarySmtpAddress, Phone | Export-CSV c:\exchange\GAL.csv -NoTypeInformation

Cũng có thể xuất danh sách hộp thư trong GAL như sau:

Get-mailbox -results unlimited | Where-Object {$_.AddressListMembership -like “*Default Global Address List*”} | Select-Object DisplayName,UserPrincipalName,AddressListMembership,HiddenFromAddress

Để xuất dữ liệu từ Active Directory, dùng công cụ console csvde.exe.

Lệnh hiển thị dữ liệu người dùng với địa chỉ email:

CSVDE -r "(&(objectClass=person)(mail=*))" -l displayName,proxyAddresses –f Exchange-GAL.csv

Kết quả danh sách địa chỉ như sau:

“CN=LondTest,OU=Service,DC=corp,DC=woshub,DC=com",LondTest,smtp: LondTest@woshub.com

Có thể dùng cmdlet PowerShell Get-ADUser và Get-ADGroup từ module AD PowerShell để lấy danh sách người dùng và nhóm với địa chỉ SMTP. Xuất danh sách người dùng với địa chỉ SMTP (thuộc tính proxyaddresses AD) từ OU cụ thể:

Get-ADUser -Filter * -SearchBase 'OU=London,OU=UK,DC=woshub,DC=com' -Properties proxyaddresses | Select-Object Name, Proxyaddresses| Export-CSV C:\PS\AD_OU_Export_GAL.csv

Xuất Global Address List từ Exchange Online (Microsoft 365)

Không có công cụ tích hợp để xuất toàn bộ nội dung GAL trong giao diện web Exchange Online (https://admin.exchange.microsoft.com/). Tuy nhiên, có thể xuất danh sách hộp thư người dùng, nhóm phân phối, hoặc hộp thư tài nguyên ra file CSV từng cái một. Ví dụ: vào Recipient → Mailboxes, chọn Export.

Tương tự, có thể xuất danh sách liên hệ, danh sách phân phối, nhóm hỗ trợ email.

Dễ dàng và tiện lợi hơn là xuất Global Address List từ tenant Exchange Online (Microsoft 365) dùng PowerShell. Kết nối tenant Exchange Online với module EXO v2:

Connect-ExchangeOnline

Liệt kê Global Address Lists có sẵn:

Get-GlobalAddressList | Select-Object Name

Trong ví dụ, chỉ tồn tại 'Default Global Address List'. Danh sách địa chỉ này bao gồm tất cả đối tượng hỗ trợ email trong tổ chức (người dùng, nhóm, nhóm phân phối).

Lấy bộ lọc của Global Address List:

$Filter = (Get-GlobalAddressList 'Default Global Address List').RecipientFilter

Bộ lọc sau dùng để thêm đối tượng vào GAL:

((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'contact') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))

Giờ có thể lấy tất cả địa chỉ SMTP từ tenant Exchange Online và xuất ra file CSV:

Get-Recipient -RecipientPreviewFilter $Filter | Select-Object Name, PrimarySmtpAddress,RecipientType | Export-CSV C:\PS\Export_Office365_GAL.csv -NoTypeInformation

Tất cả các loại recipient có thể trong Exchange Online đã được xuất ra file CSV: UserMailbox, MailUser, MailUniversalDistributionGroup, MailContact, DynamicDistributionGroup.

Xuất Global Address List từ Outlook hoặc Access

Nếu không có quyền đặc quyền trong Exchange, có thể xuất danh sách địa chỉ toàn cục của tổ chức từ máy tính người dùng dùng chương trình từ MS Office/Office 365.

Không thể xuất nội dung Global Address List trực tiếp từ Outlook. Cách duy nhất là thêm tất cả recipient từ sổ địa chỉ tổ chức vào danh sách Contacts cá nhân (Address Book → Global Address List → CTRL+A → Add to contacts). Sau đó xuất contact Outlook ra CSV qua tính năng Import-Export (File → Open & Export → Import/Export). Bạn phải copy contact gốc vào thư mục contact tạm của Outlook. Cách này không tiện lắm.

Cuối cùng, cách ít rõ ràng nhưng đơn giản và rõ ràng để xuất GAL cho user không phải admin là dùng kết nối Exchange trong Microsoft Access.

  1. Chạy Microsoft Access chọn File→Open trong menu;
  2. Chọn Exchange() trong loại file;
  3. Trong danh sách nguồn chọn Global Address List;
  4. Bạn sẽ nhận được bảng Access phẳng với dữ liệu từ sổ địa chỉ Exchange;
  5. Giờ có thể xuất dữ liệu từ database ra file CSV.

Chỉ việc nhập file CSV nhận được vào Excel và chỉnh sửa theo ý muốn.