Kết nối Office 365 Exchange Online với PowerShell: Hướng dẫn từng bước

Việc quản lý Microsoft 365 cùng tất cả các ứng dụng thông qua giao diện đồ họa (GUI) trên trình duyệt web có thể mang lại sự tiện lợi – nhưng chỉ ở một mức độ nhất định. Hai giao diện mà các chuyên gia CNTT sử dụng nhiều nhất là Trung tâm Quản trị Exchange và Trung tâm Quản trị Office 365. Tuy nhiên, khi bạn cần quản lý hàng trăm tài khoản Microsoft 365 trong toàn tổ chức, giao diện dòng lệnh (CLI) có thể là giải pháp hiệu quả hơn. Bạn có thể sử dụng nó để thực thi các lệnh Exchange Online không có sẵn trong Trung tâm Quản trị.

Với tư cách là quản trị viên, bạn có thể quản lý Microsoft Exchange Server thông qua giao diện dòng lệnh trong PowerShell của Microsoft. Vấn đề là các cmdlet thông thường có thể sử dụng trong môi trường Exchange Server tại chỗ sẽ không phù hợp với Exchange Online dựa trên đám mây. Bạn cần cài đặt các mô-đun Exchange Online PowerShell để kích hoạt các cmdlet PowerShell trong Office 365. Trong bài viết này, chúng tôi giải thích các cách khác nhau để kết nối Exchange Online với PowerShell. Việc sử dụng các cmdlet trong Exchange Online giúp tối ưu hóa quá trình quản lý, từ đó tiết kiệm thời gian và công sức.

Sao lưu dữ liệu Microsoft 365

Sao lưu dữ liệu Microsoft 365

Sử dụng giải pháp NAKIVO để sao lưu dữ liệu Microsoft 365 trên Exchange Online, Teams, OneDrive và SharePoint Online, đảm bảo quy trình làm việc diễn ra liên tục và không có thời gian ngừng hoạt động.

Chuẩn bị môi trường

Yêu cầu hệ thống

Để kết nối Exchange Online với PowerShell, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:

  • Windows 7 SP1 hoặc các phiên bản Windows dành cho máy tính để bàn mới hơn, và Windows Server 2008 R2 SP1 hoặc các phiên bản Windows dành cho máy chủ mới hơn. Ngoài Windows Management Framework 3.0, 4.0 hoặc 5.1, bạn cần cài đặt .NET Framework 4.5 hoặc phiên bản mới hơn.
  • Kết nối Internet: Mở cổng TCP 80 để thiết lập kết nối giữa máy tính cục bộ của bạn và máy chủ đích.
  • Người dùng hiện tại có quyền truy cập vào Exchange Online PowerShell. Tài khoản quản trị viên có quyền truy cập này theo mặc định.

    Bạn có thể kích hoạt quyền truy cập để kết nối với Exchange Online PowerShell cho một tài khoản cụ thể bằng lệnh cmdlet sau:

    Set-User -Identity user@domain.com -RemotePowerShellEnabled $true

Cài đặt mô-đun Exchange Online PowerShell

Việc cài đặt mô-đun Exchange Online PowerShell là cần thiết vì nó bao gồm các lệnh cmdlet và do đó cho phép quản lý Exchange cho một tenant. Trong hướng dẫn này, chúng ta sẽ cài đặt mô-đun Exchange Online V2 PowerShell.

Tuy nhiên, bạn có thể muốn kiểm tra xem mô-đun Exchange Online đã được cài đặt trên máy khách hay chưa. Để làm điều đó, hãy chạy lệnh cmdlet sau:

Get-Module -ListAvailable -Name ExchangeOnlineManagement

Nếu không tìm thấy mô-đun, hãy tiếp tục cài đặt. Bạn có thể cài đặt mô-đun PowerShell Exchange Online bằng một lệnh PowerShell duy nhất. Để bắt đầu quá trình, hãy chạy Windows PowerShell với tư cách quản trị viên, sau đó thực thi lệnh cmdlet sau:

#Install Exchange Online Management Module

Install-Module -Name ExchangeOnlineManagement -Force

Trong trường hợp hệ thống yêu cầu bạn xác nhận việc cài đặt từ kho lưu trữ không tin cậy, hãy nhấn Y để tiếp tục.

Nếu mô-đun PowerShell của Exchange Online không có trong hệ thống của bạn, thông báo lỗi sau sẽ hiển thị:

Connect-ExchangeOnline: Thuật ngữ ‘Connect-ExchangeOnline’ không được nhận diện là tên của một cmdlet, hàm, tệp kịch bản hoặc chương trình có thể thực thi.

Bạn có thể cập nhật mô-đun bằng lệnh cmdlet này:

Update-Module ExchangeOnlineManagement

Cấu hình kết nối

Trong hướng dẫn này, chúng tôi sẽ trình bày hai phương pháp chính để kết nối PowerShell với Exchange Online: cài đặt thủ công và tự động.

Thiết lập thủ công

Hãy bắt đầu với phương pháp thủ công để hiểu rõ hơn về quy trình cấu hình:

  1. Mở Windows PowerShell và chọn một trong các tùy chọn sau để tiếp tục:
    • Nhấn Start, nhập cmd, sau đó nhấp chuột phải vào mục Command Prompt . Trong menu ngữ cảnh, chọn Run as Administrator.
    • HOẶC truy cập Start > Windows PowerShell. Nhấp chuột phải vào Windows PowerShell, sau đó chọn Run as Administrator trong menu ngữ cảnh. Chạy PowerShell ở chế độ quản trị viên cho phép bạn thực thi các cmdlet mà không bị giới hạn.
  2. Cần kích hoạt tính năng chạy tập lệnh để sử dụng PowerShell đúng cách. Để thực thi các tập lệnh, bạn cần thiết lập chính sách thành RemoteSigned . Chạy lệnh này để thiết lập chính sách thực thi:

    Set-ExecutionPolicy RemoteSigned

    Hãy cân nhắc chạy cmdlet này ngay khi bạn bắt đầu cấu hình PowerShell để quản lý Exchange Online và Microsoft 365. Nếu không, các lần thử chạy lệnh Import-PSSession sau đó sẽ dẫn đến lỗi sau:

    Import-PSSession : Không thể tải tệp vì việc chạy skript đã bị vô hiệu hóa trên hệ thống này. Cung cấp chứng chỉ hợp lệ để ký tệp .

  3. Nếu hệ thống yêu cầu xác nhận, hãy nhấn Y để xác nhận thay đổi chính sách. Ngoài ra, bạn có thể sử dụng chính sách Unrestricted với lệnh cmdlet này:

    Set-ExecutionPolicy Unrestricted

    Theo mặc định, chế độ chính sách thực thi là Restricted .

  4. Bạn cần tạo đối tượng thông tin đăng nhập và cung cấp tên đăng nhập và mật khẩu quản trị viên trong cửa sổ bật lên để kích hoạt quyền truy cập Exchange Online. Người dùng được cấp quyền truy cập cần có quyền quản trị viên toàn cầu của Microsoft 365.

    $Credential=Get-Credential

  5. Hệ thống sau đó lưu thông tin đăng nhập đã cung cấp dưới dạng biến $Credential để sử dụng trong lệnh tiếp theo.
  6. Sử dụng lệnh cmdlet New-PSSession để tạo phiên PowerShell từ xa. Chạy lệnh sau:

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection

    Lưu ý: Trong lệnh cmdlet này, chúng ta đặt URL đích của máy chủ Exchange Online trên đám mây, máy chủ này phải chấp nhận yêu cầu. Sau khi chạy lệnh, các máy chủ đám mây Microsoft 365 sẽ cấp quyền truy cập vào máy chủ ảo Exchange Online liên kết với tài khoản Microsoft 365 hiện tại của bạn.

  7. Bạn cần nhập các lệnh cmdlet Exchange Online PowerShell vào phiên hiện tại. Dưới đây là lệnh cần sử dụng:

    Import-PSSession $Session

    Trong quá trình nhập, bạn có thể thấy thanh tiến trình.

  8. Thông báo sau sẽ hiển thị sau khi lệnh hoàn tất thành công:

    Command successfully completed

    LƯU Ý: Với MFA (xác thực đa yếu tố) được sử dụng cho tài khoản Microsoft 365, các lệnh cmdlet tiêu chuẩn mà chúng tôi đã đề cập trước đó sẽ không hoạt động. Để kết nối PowerShell với Exchange Online khi đã bật xác thực hai yếu tố (MFA), hãy chạy lệnh sau:

    Connect-EXOPSSession -UserPrincipalName YOUR_UPN

    Trong lệnh cmdlet này, YOUR_UPN là tên người dùng chính (User Principal Name), tức là tên tài khoản Microsoft 365 mà bạn đang sử dụng. Bạn có thể cần cài đặt một mô-đun khác tại đây: Mô-đun Exchange Online Remote PowerShell của Microsoft

    Lưu ý rằng mô-đun này có thể không thuận tiện để chạy các tập lệnh tốn thời gian vì phiên làm việc sẽ kết thúc sau một giờ khi bạn đang sử dụng nó. Ngoài ra, hãy xem xét sử dụng Địa chỉ IP đáng tin cậy (tức là các địa chỉ IP của tổ chức bạn). Điều này có thể giúp bạn bỏ qua xác thực hai yếu tố (MFA) khi kết nối Exchange Online PowerShell từ mạng của tổ chức.

  9. Sau khi kết nối với Microsoft 365 và Exchange Online được thiết lập, bạn có thể bắt đầu quản lý môi trường đám mây Office 365 của mình. Bạn có thể chạy một lệnh cmdlet để kiểm tra xem kết nối có hoạt động không. Ví dụ, hãy thử xem danh sách các hộp thư có sẵn bằng lệnh này:

    Get-Mailbox

    Lệnh cmdlet sau đây có thể cung cấp danh sách các lệnh Exchange Online PowerShell có sẵn:

    Get-Command -Module tmp*

  10. Sau khi hoàn tất công việc với Exchange, hãy kết thúc phiên làm việc. Thực hành này được khuyến nghị cả về mặt bảo mật lẫn tối ưu hóa hiệu suất. Dưới đây là lệnh cmdlet:

    Remove-PSSession $Session

    LƯU Ý: Bạn sẽ không thấy bất kỳ thông báo nào sau khi lệnh này được thực thi. Để kiểm tra xem phiên làm việc đã được gỡ bỏ thành công hay chưa, bạn có thể sử dụng cùng lệnh Get-MailBox này. Nếu phiên đã bị ngắt kết nối, bạn sẽ thấy thông báo lỗi rằng không thể chạy các lệnh cmdlet Exchange Online.

Số lượng phiên bạn có thể mở cùng lúc bị giới hạn. Bạn có thể chạy ba phiên đồng thời, và nếu không ngắt kết nối bất kỳ phiên nào, bạn sẽ phải đợi phiên hết hạn trước khi kết nối với Exchange Online PowerShell bằng một phiên mới từ một bảng điều khiển PowerShell khác.

Cài đặt tự động

Ngoài phương pháp thủ công, bạn có thể kết nối PowerShell và Exchange Online bằng cách sử dụng các tính năng tự động hóa của PowerShell. Tự động hóa giúp giảm số lượng lệnh cần sử dụng, từ đó đẩy nhanh quá trình cấu hình.

Thực hiện như sau:

  1. Tải xuống tập lệnh. Trong ví dụ của chúng tôi, tập lệnh có tên là ConnectExchangeOnlinePowerShell.ps1
  2. Tìm tập lệnh trong thư mục sau khi tải xuống. Chúng tôi có tập lệnh tại C:temp_win .
  3. Trước khi chạy tập lệnh, hãy đặt chính sách thực thi tập lệnh thành RemoteSigned bằng cách sử dụng lệnh cmdlet này:

    Set-ExecutionPolicy RemoteSigned

    Điều này giúp bạn tránh được lỗi sau:

    Tệp C:temp_winConnectExchangeOnlinePowerShell.ps1 không được ký số. Bạn không thể chạy tập lệnh này trên hệ thống hiện tại .

    Chính sách thực thi Bypass được áp dụng cũng giúp bạn tránh được vấn đề này. Dưới đây là cmdlet cần thiết:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. Xác nhận các thay đổi trong chính sách thực thi bằng cách nhập Y.
  5. Bây giờ bạn có thể tiếp tục với skript. Nếu MFA chưa được bật cho tài khoản Microsoft 365 của bạn, skript sẽ không yêu cầu các tham số bổ sung:

    .ConnectExchangeOnlinePowerShell.ps1

    Nếu MFA đã được bật trong môi trường Microsoft 365 của bạn, hãy sử dụng lệnh như sau:

    .ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Sau khi kết nối giữa Exchange Online và PowerShell được thiết lập thành công, bạn có thể bắt đầu sử dụng các cmdlet để quản lý tài khoản người dùng, hộp thư và các mục khác, cũng như các quy trình làm việc. Ví dụ, với cmdlet này, bạn có thể lấy danh sách các hộp thư người dùng có sẵn:

    Get-Mailbox

    Ngoài ra, bạn có thể sử dụng skript để lên lịch và tự động hóa thêm các quy trình làm việc. Ví dụ, kết nối với Exchange Online mà không cần cung cấp thông tin đăng nhập. Skript cho phép bạn thêm tên đăng nhập và mật khẩu làm tùy chọn thực thi:

    ./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_password

    Lưu ý rằng việc cung cấp mật khẩu dưới dạng văn bản thuần túy trong dòng lệnh của skript có thể là một vấn đề bảo mật nếu xảy ra vi phạm dữ liệu.

  7. Giới hạn không quá ba phiên chạy vẫn còn hiệu lực, vì vậy bạn nên kết thúc phiên làm việc sau khi hoàn thành công việc với Exchange Online PowerShell. Cmdlet để kết thúc phiên như sau:

    ./ConnectExchangeOnlinePowerShell.ps1 -Disconnect

Cách quản lý Exchange Online qua PowerShell trên macOS

Có nhiều cách để cài đặt PowerShell trên macOS. Phương pháp thuận tiện và đơn giản nhất là tải xuống ứng dụng khách trực tiếp từ Trang web của Microsoft. PowerShell hỗ trợ CPU Apple Silicon trong phiên bản 7.2 trở lên.

Hãy lưu ý rằng bạn cần một máy Mac chạy ít nhất là macOS11 Big Sur. Sau khi gói PowerShell được cài đặt trên thiết bị đó, hãy sử dụng phương pháp cấu hình thủ công hoặc tự động mà chúng tôi đã mô tả ở trên để kết nối PowerShell của bạn với Exchange Online.

Sử dụng PowerShell với Exchange Online

Với các lệnh PowerShell, bạn có thể tối ưu hóa thời gian và công sức dành cho việc quản lý Exchange Online.

Một số lệnh cmdlet cơ bản trông như sau:

  • New-Mailbox – để tạo hộp thư người dùng mới
  • Set-Mailbox – để điều chỉnh cài đặt của hộp thư hiện có
  • Get-Mailbox to hiển thị thông tin về các hộp thư có sẵn trong môi trường
  • Remove-Mailbox to xóa hộp thư khỏi Exchange Online

Để xem danh sách các lệnh cmdlet PowerShell có sẵn, hãy sử dụng lệnh này:

Get-command -Module ExchangeOnlineManagement

Cuối cùng, hãy xem mẫu kịch bản này. Tập lệnh này cho phép bạn lấy tất cả các hộp thư từ Exchange Online:

#Import PowerShell module for Exchange Online
Import-Module ExchangeOnlineManagement

#Connect to Exchange Online
Connect-ExchangeOnline -Credential (Get-Credential) -ShowBanner:$False

#Get All Mailboxes
Get-EXOMailbox | Format-table UserPrincipalName,DisplayName

#Disconnect Exchange Online
Disconnect-ExchangeOnline -Confirm:$False

Kết luận

Kết nối Exchange Online với PowerShell cho phép bạn quản lý các hộp thư Exchange một cách nhanh chóng và thuận tiện. Ngoài ra, bạn có thể sử dụng các tập lệnh để tự động hóa các hành động, thay đổi và điều chỉnh cho nhiều tài khoản cùng một lúc, từ đó tăng hiệu quả hoạt động.

Do Microsoft không cung cấp các công cụ sao lưu gốc cho Exchange Online, Microsoft Teams, OneDrive và SharePoint Online, hãy đảm bảo sử dụng một giải pháp sao lưu chuyên dụng để ngăn ngừa mất dữ liệu trên đám mây. NAKIVO Backup & Replication là giải pháp bảo vệ dữ liệu toàn diện cho phép bạn sao lưu dữ liệu Microsoft 365 sang các đích lưu trữ khác nhau, bao gồm cả đám mây công cộng.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read