Weboldal keresés

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:

  1. 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.
  2. 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
  1. 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.com

Miutá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:$false

Az ú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.com

Automatikusan 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 ExchangeOnlineManagement

Ellenő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.com

Most 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 $true

Ellenő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 johndoe

A 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-ExchangeOnline

Gyakran 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

Kapcsolódó cikkek