Łączenie usługi Office 365 Exchange Online z PowerShell: przewodnik krok po kroku
Zarządzanie usługą Microsoft 365 wraz ze wszystkimi aplikacjami za pomocą graficznego interfejsu użytkownika (GUI) w przeglądarce internetowej może być wygodne — ale tylko do pewnego stopnia. Dwa interfejsy, z których specjaliści IT korzystają najczęściej, to Centrum administracyjne Exchange oraz Centrum administracyjne Office 365. Jednak gdy trzeba zarządzać setkami kont Microsoft 365 w całej organizacji, bardziej wydajnym rozwiązaniem może okazać się interfejs wiersza poleceń (CLI). Można go używać do stosowania poleceń Exchange Online niedostępnych w Centrum administracyjnym.
Jako administrator możesz zarządzać serwerem Microsoft Exchange za pomocą interfejsu wiersza poleceń w środowisku PowerShell firmy Microsoft. Problem polega na tym, że zwykłe polecenia cmdlet, które można używać lokalnie na serwerze Exchange, nie będą pasować do opartego na chmurze Exchange Online. Aby włączyć polecenia cmdlet PowerShell w Office 365, należy zainstalować moduły Exchange Online Powershell. W tym poście wyjaśniamy różne sposoby połączenia Exchange Online z PowerShell. Korzystanie z poleceń cmdlet w Exchange Online pomaga usprawnić zarządzanie, oszczędzając w ten sposób czas i wysiłek.
Przygotowanie środowiska
Wymagania systemowe
Aby połączyć usługę Exchange Online z platformą PowerShell, upewnij się, że system spełnia następujące wymagania:
- System Windows 7 z dodatkiem SP1 lub nowsza wersja systemu Windows dla komputerów stacjonarnych oraz system Windows Server 2008 R2 z dodatkiem SP1 lub nowsza wersja systemu Windows dla serwerów. Oprócz środowiska Windows Management Framework 3.0, 4.0 lub 5.1 wymagana jest zainstalowana platforma .NET Framework 4.5 lub nowsza.
- Połączenie internetowe: Otwórz port TCP 80, aby nawiązać połączenie między komputerem lokalnym a hostem docelowym.
- Obecny użytkownik z Exchange Online PowerShell ma włączony dostęp. Konta administratorów mają ten dostęp domyślnie.
Możesz włączyć dostęp do połączenia z Exchange Online PowerShell dla konkretnego konta za pomocą następującego polecenia cmdlet:
Set-User -Identity user@domain.com -RemotePowerShellEnabled $true
Instalowanie modułu Exchange Online PowerShell
Instalacja modułu Exchange Online PowerShell jest konieczna, ponieważ zawiera on polecenia cmdlet, a tym samym umożliwia zarządzanie usługą Exchange dla dzierżawcy. W tym przewodniku instalujemy moduł Exchange Online V2 PowerShell.
Możesz jednak sprawdzić, czy moduł Exchange Online jest już zainstalowany na komputerze klienckim. Aby to zrobić, uruchom następujące polecenie cmdlet:
Get-Module -ListAvailable -Name ExchangeOnlineManagement
Jeśli nie znajdziesz modułu, kontynuuj instalację. Moduł Exchange Online PowerShell można zainstalować za pomocą jednego polecenia PowerShell. Aby rozpocząć proces, uruchom Windows PowerShell jako administrator, a następnie wykonaj następujący cmdlet:
#Install Exchange Online Management Module
Install-Module -Name ExchangeOnlineManagement -Force
Jeśli system wymaga potwierdzenia instalacji z niezaufanego repozytorium, naciśnij Y , aby kontynuować.
Jeśli moduł Exchange Online PowerShell nie jest obecny w systemie, wyświetlany jest następujący komunikat o błędzie:
Connect-ExchangeOnline: Termin „Connect-ExchangeOnline” nie jest rozpoznawany jako nazwa polecenia cmdlet, funkcji, pliku skryptu ani programu operacyjnego.
Moduł można zaktualizować za pomocą tego polecenia cmdlet:
Update-Module ExchangeOnlineManagement
Konfigurowanie połączenia
W tym przewodniku omówiono dwie główne metody łączenia programu PowerShell z usługą Exchange Online: konfigurację ręczną i automatyczną.
Konfiguracja ręczna
Zacznijmy od metody ręcznej, aby lepiej zrozumieć proces konfiguracji:
- Otwórz Windows PowerShell i wybierz jedną z poniższych opcji, aby kontynuować:
- Naciśnij
Start, wpiszcmd, a następnie kliknij prawym przyciskiem myszy pozycjęCommand Prompt. W menu kontekstowym wybierzRun as Administrator. - LUB przejdź do
Start>Windows PowerShell. Kliknij prawym przyciskiem myszy ikonę Windows PowerShell, a następnie wybierz z menu kontekstowego opcję „Run as Administrator”. Uruchomienie programu PowerShell w trybie administratora umożliwia wykonywanie poleceń cmdlet bez ograniczeń.
- Naciśnij
- Aby korzystać z programu PowerShell w sposób prawidłowy, należy włączyć obsługę skryptów. Aby umożliwić wykonywanie skryptów, należy ustawić zasadę na RemoteSigned . Uruchom to polecenie, aby ustawić zasadę wykonywania:
Set-ExecutionPolicy RemoteSignedRozważ uruchomienie tego polecenia cmdlet zaraz po rozpoczęciu konfiguracji programu PowerShell do zarządzania usługami Exchange Online i Microsoft 365. W przeciwnym razie kolejne próby uruchomienia polecenia
Import-PSSessionspowodują wyświetlenie następującego błędu:Import-PSSession : Nie można załadować plików, ponieważ w tym systemie wyłączono uruchamianie skryptów. Podaj prawidłowy certyfikat, którym należy podpisać pliki .
- Jeśli system zażąda potwierdzenia, naciśnij
Y, aby potwierdzić zmianę zasad. Można również użyć polityki Unrestricted z tym poleceniem cmdlet:Set-ExecutionPolicy UnrestrictedDomyślnie tryb polityki wykonywania to Restricted .
- Aby umożliwić dostęp do Exchange Online, należy utworzyć obiekt poświadczeń i podać login administratora oraz hasło w wyskakującym oknie. Użytkownik uzyskujący dostęp musi posiadać uprawnienia globalnego administratora Microsoft 365.
$Credential=Get-Credential - Następnie system zapisuje podane poświadczenia jako zmienną $Credential do wykorzystania w poniższym poleceniu.
- Użyj polecenia cmdlet New-PSSession , aby utworzyć zdalną sesję PowerShell. Uruchom następujące polecenie:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirectionUwaga: W tym poleceniu cmdlet ustawiamy docelowy adres URL serwera Exchange Online w chmurze, który musi zaakceptować żądanie. Po uruchomieniu polecenia serwery chmurowe Microsoft 365 zapewniają dostęp do wirtualnego serwera Exchange Online powiązanego z bieżącym kontem Microsoft 365.
- Musisz zaimportować polecenia cmdlet Exchange Online PowerShell do bieżącej sesji. Oto polecenie, którego należy użyć:
Import-PSSession $SessionPodczas procesu importowania widoczny jest pasek postępu.
- Po pomyślnym zakończeniu polecenia wyświetla się następujący komunikat:

UWAGA: W przypadku uwierzytelniania wieloskładnikowego (MFA) używanego dla konta Microsoft 365 standardowe polecenia cmdlet, o których wspomnieliśmy wcześniej, nie będą działać. Aby połączyć się z usługą Exchange Online za pomocą PowerShell przy włączonym uwierzytelnianiu wieloskładnikowym (MFA), uruchom następujące polecenie:
Connect-EXOPSSession -UserPrincipalName YOUR_UPNW tym poleceniu cmdlet YOUR_UPN oznacza nazwę użytkownika (User Principal Name), czyli nazwę konta Microsoft 365, z którego korzystasz. Być może konieczne będzie zainstalowanie innego modułu: modułu Microsoft Exchange Online Remote PowerShell Module.
Pamiętaj, że korzystanie z tego modułu może być niewygodne w przypadku uruchamiania skryptów wymagających dużej ilości czasu, ponieważ sesja kończy się po upływie godziny od momentu rozpoczęcia korzystania z niego. Rozważ również użycie Zaufanych adresów IP (czyli adresów IP Twojej organizacji). Może to pomóc w ominięciu uwierzytelniania wieloskładnikowego (MFA) podczas łączenia się z Exchange Online PowerShell z sieci Twojej organizacji.
- Po nawiązaniu połączenia z Microsoft 365 i Exchange Online możesz rozpocząć zarządzanie swoim środowiskiem chmury Office 365. Możesz uruchomić polecenie cmdlet, aby sprawdzić, czy połączenie działa. Na przykład spróbuj wyświetlić listę dostępnych skrzynek pocztowych za pomocą tego polecenia:
Get-MailboxNastępujący cmdlet może wyświetlić listę dostępnych poleceń Exchange Online PowerShell:
Get-Command -Module tmp* - Po zakończeniu pracy z Exchange tutaj, zakończ sesję. Praktyka ta jest zalecana zarówno ze względów bezpieczeństwa, jak i optymalizacji wydajności. Oto cmdlet:
Remove-PSSession $SessionUWAGA: Po wykonaniu tego polecenia nie zobaczysz żadnego komunikatu. Aby sprawdzić, czy sesja została pomyślnie usunięta, możesz użyć tego samego
Get-MailBoxpolecenia. Jeśli sesja została rozłączona, pojawi się komunikat o błędzie informujący, że uruchomienie poleceń cmdlet Exchange Online jest niemożliwe.
Liczba sesji, które można otworzyć jednocześnie, jest ograniczona. Można uruchomić trzy sesje jednocześnie, a jeśli żadna z nich nie zostanie rozłączona, przed połączeniem się z Exchange Online PowerShell za pomocą nowej sesji z innej konsoli PowerShell należy poczekać na wygaśnięcie sesji.
Konfiguracja automatyczna
Oprócz podejścia ręcznego można połączyć PowerShell i Exchange Online, korzystając z funkcji automatyzacji PowerShell. Automatyzacja zmniejsza liczbę poleceń, które trzeba użyć, przyspieszając w ten sposób proces konfiguracji.
Postępuj w następujący sposób:
- Pobierz skrypt. W naszym przykładzie plik skryptu nosi nazwę ConnectExchangeOnlinePowerShell.ps1
- Znajdź plik skryptu w katalogu po pobraniu. Skrypt znajduje się pod adresem C:temp_win .
- Przed uruchomieniem skryptu należy ustawić zasady wykonywania skryptów na RemoteSigned za pomocą tego polecenia cmdlet:
Set-ExecutionPolicy RemoteSignedPozwoli to uniknąć następującego błędu:
Plik C:temp_winConnectExchangeOnlinePowerShell.ps1 nie jest podpisany cyfrowo. Nie można uruchomić tego skryptu w bieżącym systemie .
Zastosowanie Bypass zasad wykonywania również pozwala uniknąć tego problemu. Oto wymagany cmdlet:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass - Potwierdź zmiany w zasadach wykonywania, wpisując
Y. - Teraz możesz kontynuować skrypt. Jeśli dla Twojego konta Microsoft 365 nie jest włączone uwierzytelnianie wieloskładnikowe (MFA), skrypt nie będzie wymagał dodatkowych argumentów:
.ConnectExchangeOnlinePowerShell.ps1Jeśli w Twoim środowisku Microsoft 365 jest włączone uwierzytelnianie wieloskładnikowe (MFA), użyj polecenia w następujący sposób:
.ConnectExchangeOnlinePowerShell.ps1 -MFA - Po pomyślnym nawiązaniu połączenia między Exchange Online a PowerShell możesz zacząć używać poleceń cmdlet do zarządzania kontami użytkowników, skrzynkami pocztowymi i innymi elementami, a także przepływami pracy. Na przykład za pomocą tego polecenia cmdlet możesz uzyskać listę dostępnych skrzynek pocztowych użytkowników:
Get-MailboxMożesz też użyć skryptu do planowania i dalszej automatyzacji przepływów pracy. Na przykład połącz się z Exchange Online bez podawania poświadczeń. Skrypt pozwala dodać login i hasło jako opcje wykonania:
./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_passwordNależy pamiętać, że podawanie haseł w postaci zwykłego tekstu w wierszu poleceń skryptu może stanowić zagrożenie dla bezpieczeństwa w przypadku naruszenia danych.
- Ograniczenie dotyczące maksymalnie trzech uruchomionych sesji nadal obowiązuje, dlatego po zakończeniu pracy z Exchange Online PowerShell warto zamknąć sesję. Polecenie cmdlet służące do zamknięcia sesji wygląda następująco:
./ConnectExchangeOnlinePowerShell.ps1 -Disconnect
Jak zarządzać Exchange Online za pomocą PowerShell w systemie macOS
Istnieje kilka sposobów instalacji PowerShell w systemie macOS. Najwygodniejszą i najprostszą metodą jest pobranie klienta bezpośrednio ze strony Strona internetowa firmy Microsoft. PowerShell obsługuje procesory Apple Silicon w wersji 7.2 lub nowszej.
Należy pamiętać, że wymagany jest komputer Mac z systemem macOS 11 Big Sur lub nowszym. Po zainstalowaniu pakietu PowerShell na takim urządzeniu należy skorzystać z opisanego powyżej ręcznego lub automatycznego sposobu konfiguracji, aby połączyć PowerShell z Exchange Online.
Korzystanie z PowerShell w usłudze Exchange Online
Dzięki poleceniom cmdlet PowerShell można zoptymalizować czas i wysiłek poświęcany na zarządzanie usługą Exchange Online.
Niektóre z podstawowych poleceń cmdlet wyglądają następująco:
New-Mailbox– tworzenie nowej skrzynki pocztowej użytkownikaSet-Mailbox– dostosowywanie ustawień istniejącej skrzynki pocztowejGet-Mailbox–towyświetlanie informacji o dostępnych skrzynkach pocztowych w całym środowiskuRemove-Mailbox–tousuwanie skrzynki pocztowej z Exchange Online
Aby wyświetlić listę dostępnych poleceń cmdlet PowerShell, użyj tego polecenia:
Get-command -Module ExchangeOnlineManagement
Na koniec sprawdź ten przykładowy skrypt. Skrypt pozwala pobrać wszystkie skrzynki pocztowe z 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
Wnioski
Połączenie Exchange Online z PowerShell umożliwia szybkie i wygodne zarządzanie skrzynkami pocztowymi Exchange. Dodatkowo można używać skryptów do automatyzacji działań, zmian i dostosowań dla wielu kont jednocześnie, zwiększając wydajność operacyjną.
Biorąc pod uwagę, że Microsoft nie oferuje natywnych narzędzi do wykonania kopii zapasowej dla Exchange Online, Microsoft Teams, OneDrive i SharePoint Online, należy korzystać z dedykowanego rozwiązania do wykonania kopii zapasowej, aby zapobiec utracie danych w chmurze. NAKIVO Backup & Replication to uniwersalne rozwiązanie do ochrony danych, które pozwala wysyłać kopie zapasowe danych z Microsoft 365 do różnych miejsc przechowywania, w tym do chmur publicznych.