Csatlakozzon az Exchange Online-hoz a PowerShell segítségével – a legjobb módszer
Az Exchange Online egyes beállításai csak a PowerShell segítségével módosíthatók. De hogyan csatlakozhat az Exchange Online-hoz a PowerShell segítségével? Különösen akkor, ha MFA-t használ, vagy automatikusan szeretné futtatni a szkriptet ütemezett vagy Azure Runbook segítségével.
A PowerShell emellett nagyszerű módja annak, hogy számos napi feladatot elvégezzen az Exchange Online-ban, például a postaláda beállításainak módosítására, új postafiók hozzáadására vagy információk lekérésére.
Ebben a cikkben megvizsgáljuk, hogyan csatlakozhat az Exchange Online-hoz a PowerShellben, hogyan használhatja a modult az Azure Runbookban stb.
Telepítse az Exchange Online modult
Az Exchange Online-hoz való csatlakozás előtt telepítenünk kell az EXO V3 modult a PowerShellben. A PowerShell modul telepítéséhez a PowerShellt emelt (adminisztrátori) módban fogjuk megnyitni:
- Nyissa meg a PowerShellt emelt módban
Nyomja meg a Windows billentyű + X billentyűkombinációt, és válassza a Windows PowerShell (rendszergazda) lehetőséget. - Az EXO V3 modul telepítése
Az Exchange Online Management Module telepítéséhez írja be az alábbi parancsot:
# Add -Force to it when you need to update EXO V3.
Install-Module -Name ExchangeOnlineManagement -Force- Nyomja meg kétszer az Y billentyűt
Ha nincs telepítve a NuGet, akkor először a PowerShellGet telepítésére kell kérnie. Csak nyomja meg az Y gombot. Nyomja meg ismét az Y billentyűt, hogy telepítse az Exchange Online modult a nem megbízható adattárból
Csatlakozzon az Exchange Online-hoz a PowerShell segítségével
Az Exchange Online-hoz való csatlakozáshoz néhány lehetőség közül választhat. Ha csak a Connect-ExchangeOnline parancsot írja be, akkor a rendszer felkéri, hogy adja meg vagy válassza ki Microsoft 365-fiókját. A legújabb modul, a v3, MFA-tudatos, így MFA-képes fiókkal is hitelesíthet.
Én személy szerint inkább azt a fiókot szeretném megadni, amelyet a kapcsolathoz használni akarok, ezt a UserPrincipalName paraméter használatával teheti meg:
Connect-ExchangeOnline -UserPrincipalName john@contoso.comMiután csatlakozott az Exchange Online-hoz, alapértelmezett kimenetet kap az EXO modulra vonatkozó információkkal. A szalaghirdetést elrejthetjük a -ShowBanner:$false paraméter használatával
Connect-ExchangeOnline -UserPrincipalName john@contoso.com -ShowBanner:$falseAz új EXO V3 modul egy másik bérlőhöz való csatlakozást is támogatja. Ha Ön Microsoft-partner, vagy ha több bérlőt kezel, akkor a -DelgatedOrganization paraméter hozzáadásával kapcsolódhat egy másik bérlőhöz:
Connect-ExchangeOnline -UserPrincipalName john@contoso.com -DelegatedOrganization contoso.onmicrosoft.comAutomatikusan ellenőrizze, hogy az EXO modul telepítve van-e
Szkriptben fogja használni az Exchange Online modult? Ezután győződjön meg róla, hogy automatikusan ellenőrizze, hogy a modul telepítve van-e, mielőtt megpróbálná csatlakozni.
Egyetlen parancsmag használatával listázhatjuk az összes telepített modult a PowerShellben. Megakadályozhatja a szükségtelen hibákat, ha ellenőrizze, hogy az ExchangeOnlineManagement modul elérhető-e.
if ($null -ne (Get-Module -ListAvailable -Name ExchangeOnlineManagement)){
# Your script goes here
}A fenti cmd-nek vissza kell adnia a telepített Exchange Online modulok listáját. Ha az eredmény üres (null), akkor tudjuk, hogy a modul nincs telepítve.
Frissítse az Exchange Online PowerShell modult
A PowerShell-modulokat gyakran frissítik, beleértve az Exchange Online modult is. Az EXO v3 legújabb verziója néhány olyan fejlesztést tartalmaz, amelyek miatt érdemes frissíteni a PowerShell-modult.
- Jobb teljesítmény - Az új EXO-parancsmagok REST API-alapúak
- Biztonságosabb - A V3 modern hitelesítést használ
- Megbízhatóbb
- Tanúsítvány alapú hitelesítés
- UseRPSSession Switch - Hozzáférést biztosít az összes meglévő távoli PowerShell-parancsmaghoz.
Az Exchange Online PowerShell-modul frissítéséhez a következő parancsot használhatjuk egy megemelt PowerShell-ablakban:
Update-Module -Name ExchangeOnlineManagementEllenőrizze a frissítést a következővel:
Get-Module ExchangeOnlineManagement
Az új funkciók előnyeinek kihasználásához frissítse a Get-* parancsmagokat a Get-EXO* megfelelőire. Az új parancsmagok naprakész listája a dokumentációban található.
Csatlakozzon az Exchange Online Function for PowerShellhez
Az alábbi teljes funkció szkriptekben használható az Exchange Online-hoz való csatlakozáshoz. Ez a funkció ellenőrzi, hogy az Exchange Online modul telepítve van-e, és mikor ad lehetőséget az automatikus telepítésre.
Ezenkívül ellenőrzi, hogy vannak-e meglévő Exchange Online-kapcsolatok a PowerShellben, megakadályozva, hogy ugyanabban a munkamenetben több kapcsolat jöjjön létre.
Function ConnectTo-EXO {
<#
.SYNOPSIS
Connects to EXO when no connection exists. Checks for EXO v3 module
#>
param(
[Parameter(
Mandatory = $true
)]
[string]$adminUPN
)
process {
# Check if EXO is installed and connect if no connection exists
if ($null -eq (Get-Module -ListAvailable -Name ExchangeOnlineManagement))
{
Write-Host "Exchange Online PowerShell v3 module is requied, do you want to install it?" -ForegroundColor Yellow
$install = Read-Host Do you want to install module? [Y] Yes [N] No
if($install -match "[yY]") {
Write-Host "Installing Exchange Online PowerShell v3 module" -ForegroundColor Cyan
Install-Module ExchangeOnlineManagement -Repository PSGallery -AllowClobber -Force
}else{
Write-Error "Please install EXO v3 module."
}
}
if ($null -ne (Get-Module -ListAvailable -Name ExchangeOnlineManagement)) {
# Check which version of Exchange Online is installed
if (Get-Module -ListAvailable -Name ExchangeOnlineManagement | Where-Object {$_.version -like "3.*"} ) {
# Check if there is a active EXO sessions
if ((Get-ConnectionInformation).tokenStatus -ne 'Active') {
write-host 'Connecting to Exchange Online' -ForegroundColor Cyan
Connect-ExchangeOnline -UserPrincipalName $adminUPN
}
}else{
# Check if there is a active EXO sessions
$psSessions = Get-PSSession | Select-Object -Property State, Name
If (((@($psSessions) -like '@{State=Opened; Name=ExchangeOnlineInternalSession*').Count -gt 0) -ne $true) {
write-host 'Connecting to Exchange Online' -ForegroundColor Cyan
Connect-ExchangeOnline -UserPrincipalName $adminUPN
}
}
}else{
Write-Error "Please install EXO v3 module."
}
}
}Csatlakozás az Exchange Online szolgáltatáshoz delegált rendszergazdaként (partner)
Ha több bérlőt kezel, előfordulhat, hogy csatlakoznia kell az Exchange Online-hoz is. Ahelyett, hogy az ügyfél bérlőjétől származó dedikált rendszergazdai bejelentkezést használna, delegált adminisztrátorként is csatlakozhat az Exchange Online-hoz.
Ily módon saját hitelesítő adatait használhatja a hitelesítéshez. Ehhez a -DelegatedOrganization paramétert kell használnia.
# Replace stonegrovebank.onmicrosoft.com with the organization that you want to manage
Connect-ExchangeOnline -DelegatedOrganization stonegrovebank.onmicrosoft.com
# Optional, you can specify your username as well
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com -DelegatedOrganization stonegrovebank.onmicrosoft.comMost már kezelheti az összes postafiókot a partnerbérlőtől.
Az Exchange Online csatlakoztatása a PowerShellhez modern hitelesítés nélkül
A következő módszerrel csatlakozhat az Exchange Online-hoz a PowerShellben, ha fiókja még nem támogatja a modern hitelesítést:
$cred = Get-Credential
Connect-ExchangeOnline -Credential $cred -ShowProgress $trueEllenőrizze, hogy az Exchange Online csatlakozik-e
Célszerű ellenőrizni, hogy létezik-e már kapcsolat, amikor az Exchange Online modult parancsfájlokban használja. Ne feledje, hogy csak 5 egyidejű kapcsolata lehet az Exchange Online-hoz. És valószínűleg nem akar bejelentkezni, ha nem kell.
Az EXO v3 óta használhatjuk a Get-ConnectionInformation parancsmagot. Ha az Exchange Online régebbi verzióját használja, akkor a Get-PSSession parancsot kell használnia.
Az alábbi részlettel ellenőrizheti, hogy van-e aktív ExchangeOnline munkamenet a V3 és a régebbi verziókhoz. Először ellenőrizzük, hogy az ExchangeOnline modul telepítve van-e, majd ha a 3.x verzió telepítve van, az nincs. Ezután verziótól függően ellenőrizzük a meglévő kapcsolatokat.
if ($null -ne (Get-Module -ListAvailable -Name ExchangeOnlineManagement)) {
# Check which version of Exchange Online is installed
if (Get-Module -ListAvailable -Name ExchangeOnlineManagement | Where-Object {$_.version -like "3.*"} ) {
# Check if there is a active EXO sessions
if ((Get-ConnectionInformation).tokenStatus -ne 'Active') {
write-host 'Connecting to Exchange Online' -ForegroundColor Cyan
Connect-ExchangeOnline -UserPrincipalName $adminUPN
}
}else{
# Check if there is a active EXO sessions
$psSessions = Get-PSSession | Select-Object -Property State, Name
If (((@($psSessions) -like '@{State=Opened; Name=ExchangeOnlineInternalSession*').Count -gt 0) -ne $true) {
write-host 'Connecting to Exchange Online' -ForegroundColor Cyan
Connect-ExchangeOnline -UserPrincipalName $adminUPN
}
}
}A postafiók információinak lekérése
Az új EXO V3 modullal most könnyedén megkaphatja a postafiók adatait a következő rövidítéssel:
# Old way:
Get-ExoMailbox -identity johndoe@lazyadmin.nl
# With the EXO V2 module you can write the following shorthand
Get-ExoMailbox johndoeA munkamenetek leválasztása
A PowerShell ablak bezárása előtt mindig szakítsa meg az Exchange Online munkamenetet. Ha nem zárja be a munkamenetet, előfordulhat, hogy mind az öt távoli PowerShell-kapcsolatot használja az Exchange Online-hoz. Ha ez megtörténik, meg kell várnia, amíg a munkamenetek lejárnak, mielőtt újra csatlakozhatna.
Disconnect-ExchangeOnlineGyakran Ismételt Kérdések
Ha a „A fájlok nem tölthetők be, mert a szkriptek le vannak tiltva ezen a rendszeren, hibaüzenet jelenik meg. Adjon meg egy érvényes tanúsítványt, amellyel aláírhatja a fájlokat." akkor elfelejtette beállítani a végrehajtási házirendet.
Futtassa a következő parancsmagot egy emelt szintű PowerShell-ablakban:Set-ExecutionPolicy RemoteSigned
MFA-kompatibilis fiókkal próbál csatlakozni az Exchange Online-hoz, miközben az alapvető hitelesítési lehetőséget használja.
Győződjön meg arról, hogy a cikk elején leírtak szerint telepítette a legújabb Exchange Online modult, az EXO V3-at. .
Mind az 5 elérhető Exchange Online-kapcsolatot felhasználta. Győződjön meg róla, hogy leválasztotta a PowerShell-munkameneteket.
Az aktuális munkamenetek bezárásához futtassa a következő parancsmagot:Get-PSSession | Remove-PSSession
Az Exchange Online-hoz való csatlakozáshoz olyan fiókot kell használnia, amely globális rendszergazda az Office 365-ben. A fiók, amelyhez csatlakozik, nem rendelkezik a megfelelő engedélyekkel.
Becsomagolás
Az új Exchange Online modul nagyon hatékony, és sokkal egyszerűbbé teszi az Exchange Online szolgáltatással való munkát. Remélem, ez a cikk segített az indulásban. Ha bármilyen kérdése van, csak írjon megjegyzést alább.
A következő cikkek is tetszhetnek neked:
- Engedélyezze az Office 365 Plus címzést
- Keresse meg az összes e-mail címet a PowerShell segítségével
- Csatlakoztassa a PowerShellt az Office 365-höz

