Hoe u Office 365 Exchange Online-services verbindt met PowerShell

Meestal worden Microsoft Office 365 en alle bijbehorende toepassingen beheerd via een webbrowser in een grafische gebruikersinterface. In feite gebruikt u de Office 365-beheercentrum en de Exchange-beheercentrum webinterfaces. U kunt echter mogelijk de opdrachtregelinterface (CLI) gebruiken om bulkacties uit te voeren die van toepassing zijn op honderden gebruikersaccounts. Bovendien wilt u mogelijk de Exchange Online-cmdlets gebruiken, die niet beschikbaar zijn in het beheercentrum.

Veel beheerders gebruiken PowerShell (geleverd door Microsoft) om Microsoft Exchange Server te beheren in de opdrachtregelinterface. Deze standaardopdrachten voor on-premises Exchange Server-omgevingen werken echter niet voor Exchange Online die draait in de Microsoft 365-cloud. Om PowerShell te gebruiken met Office 365, moet u speciale PowerShell-modules installeren om verbinding te maken met Office 365. Lees dit bericht om meer te weten te komen over de verschillende methoden om verbinding te maken met Exchange Online PowerShell.

Vereisten

Er zijn enkele vereisten waaraan moet worden voldaan om verbinding te maken met Exchange Online PowerShell.

  • U moet PowerShell gebruiken op Windows 7 SP1 of nieuwere desktopversies van Windows en Windows Server 2008 R2 SP1 of nieuwere serverversies van Windows. Let op dat u .NET Framework 4.5 of later moet installeren, naast het installeren van een bijgewerkte versie van Windows Management Framework 3.0, 4.0 of 5.1.
  • Een internetverbinding is vereist. TCP-poort 80 moet worden geopend om verbinding te maken vanaf uw lokale machine met de doelhost.
  • Toegang tot Exchange Online PowerShell moet worden ingeschakeld voor de huidige gebruiker (standaard is deze toegang ingeschakeld voor beheerders).

U kunt handmatig toegang inschakelen om verbinding te maken met Exchange Online PowerShell voor de specifieke gebruiker met het commando:

Set-User -Identity [email protected] -RemotePowerShellEnabled $true

Werkingsprincipe

U kunt verbinding maken met Exchange Online PowerShell, maar dit proces is ingewikkelder dan het gebruik van PowerShell voor het beheren van een lokale Exchange Server. U kunt echter de ingebouwde PowerShell-console gebruiken om externe cloud-infrastructuur te beheren. In dit geval wordt de console externe PowerShell of PowerShell Remoting genoemd. Het proces om een externe PowerShell-sessie te starten voor Office 365 en Exchange Online is iets anders. U moet speciale componenten downloaden en installeren voordat u een externe Office 365-sessie kunt openen. Gelukkig worden de cmdlets die nodig zijn om een externe Exchange Online PowerShell-sessie te starten automatisch gedownload wanneer u een externe PowerShell-sessie maakt. Verschillende sets PowerShell-cmdlets worden gebruikt om Microsoft Office 365 en Microsoft Exchange Online te beheren.

De belangrijkste redenering achter het verbinden met Microsoft Exchange Online in PowerShell omvat het volgende:

  • Het maken van een externe sessie naar Exchange Online in PowerShell die wordt geopend op uw lokale machine.
  • Het verstrekken van verbindingsinstellingen, doorgeven van authenticatie.
  • Het importeren van PowerShell-cmdlets die nodig zijn om Exchange Online op afstand te beheren.

In de blogpost van vandaag zullen we PowerShell-cmdlets uitvoeren op Windows 10.

Handmatige configuratie

Laten we eerst de handmatige methode bekijken om het configuratieprincipe beter te begrijpen.

  1. Open Windows PowerShell. Dit kunt u op minstens twee manieren doen.
    1. Klik op Start, typ cmd, klik met de rechtermuisknop op het item Command Prompt en selecteer Uitvoeren als administrator in het contextmenu.
    2. Ga naar Start > Windows PowerShell. Klik met de rechtermuisknop op Windows PowerShell en kies Uitvoeren als administrator om ervoor te zorgen dat u PowerShell-commando’s zonder beperkingen kunt uitvoeren.
  2. Schakel het uitvoeren van scripts in (het is beter om dit commando uit te voeren aan het begin van het voorbereiden van PowerShell om Exchange Online en Office 365 te beheren), anders krijgt u in de toekomst een foutmelding bij het uitvoeren van het Import-PSSession-commando:

    Import-PSSession : Bestanden kunnen niet worden geladen omdat het uitvoeren van scripts is uitgeschakeld op dit systeem. Lever een geldig certificaat waarmee de bestanden kunnen worden ondertekend.

  3. Om scripts uit te voeren, moet het uitvoeringsbeleid worden ingesteld op RemoteSigned.

    Set-ExecutionPolicy RemoteSigned

  4. Druk op Y om de wijziging van het beleid te bevestigen als hierom wordt gevraagd. U kunt ook de Set-ExecutionPolicy Unrestricted opdracht gebruiken om het Onbeperkt beleid te gebruiken.

    Standaard is de uitvoeringsbeleidsmodus Beperkt.

  5. Voer het commando uit in PowerShell om referenties te krijgen en voer uw beheerdersaanmelding/wachtwoord in het popupvenster in om toegang te krijgen tot Exchange Online. De gebruiker moet globale beheermachtigingen hebben in Office 365.

    $Credential=Get-Credential
    De ingevoerde referenties worden opgeslagen in de variabele en gebruikt in het volgende commando als $Credential.

  6. Je moet een externe PowerShell-sessie maken met het New-PSSession cmdlet en de volgende opdracht uitvoeren:

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

    Merk op dat in deze opdracht de doel-URL van de Exchange Online-server die in de cloud draait en het verzoek moet accepteren, is ingesteld. Nadat de opdracht is uitgevoerd, zullen Microsoft Office 365-cloudservers u toegang geven tot de juiste Exchange Online virtuele server die is gekoppeld aan uw account.

  7. Exchange Online PowerShell-cmdlets moeten worden geïmporteerd naar de huidige sessie met de opdracht:

    Import-PSSession $Session

  8. U kunt de voortgangsbalk zien terwijl u de opdrachten ontvangt.
  9. Na het succesvol uitvoeren van de opdracht, ziet u de volgende melding.
    Opmerking:
    Als u MFA gebruikt voor uw account, zullen de bovenstaande standaard cmdlets niet werken. Als u Exchange Online in PowerShell wilt verbinden met MFA, voert u de volgende opdracht uit:

    Connect-EXOPSSession -UserPrincipalName UW_UPN

    Waar UW_UPN (gebruikersprincipe naam) de naam is van het Office 365-account dat u gebruikt. Mogelijk moet u de Exchange Online Remote PowerShell-module van Microsoft installeren. Wees ervan bewust dat wanneer u deze module gebruikt, de sessie na een uur eindigt, wat mogelijk onhandig is voor het uitvoeren van lange scripts. Overweeg het gebruik van Vertrouwde IP-adressen (d.w.z. de IP-adressen van uw organisatie) om MFA te omzeilen bij het verbinden van het netwerk van uw bedrijf met Exchange Online PowerShell. MFA (Multi-Factor-Authentication) is de geavanceerde methode van verificatie die een tweede beveiligingslaag toevoegt. Na het invoeren van een wachtwoord wordt de bevestigingscode naar de mobiele telefoon van de gebruiker gestuurd en moet de gebruiker de bevestigingscode invoeren om het account te verifiëren en toegang te krijgen tot de Office 365-cloudservices.

  10. Zodra u verbinding hebt gemaakt met Office 365 en Exchange Online, kunt u uw Office 365-cloudomgeving beheren. Laten we controleren of we correct zijn verbonden met Exchange Online en bijvoorbeeld de postbussen van gebruikers lijsten.

    Get-Mailbox

    U kunt alle beschikbare cmdlets voor Exchange Online PowerShell vermelden met het volgende commando:

    Get-Command -Module tmp*

    De namen van Exchange Online PowerShell-cmdlets worden niet geconverteerd.

  11. Wanneer u uw werk met Exchange 365 beëindigt, verbreekt u de sessie. Dit is de aanbevolen werkwijze.

    Remove-PSSession $Sessie

    Helaas worden er geen berichten weergegeven na het uitvoeren van dit commando. U kunt controleren of de sessie is verbroken door het Get-MailBox-commando uit te voeren. Als de sessie is verbroken, krijgt u de foutmelding dat u Exchange Online-cmdlets niet kunt uitvoeren na het verbreken.

Waarom zou je de sessie moeten ontkoppelen? Nou, simpelweg omdat het aantal actieve gelijktijdige sessies dat tegelijkertijd kan worden geopend, is beperkt tot drie. Als je drie Exchange Online PowerShell-sessies tegelijkertijd opent en geen van hen ontkoppelt als ze niet in gebruik zijn, moet je wachten tot een van deze sessies verloopt voordat je weer verbinding kunt maken met Exchange Online PowerShell vanuit een nieuw PowerShell-console.

Geautomatiseerde configuratie

Nu je weet hoe je handmatig verbinding kunt maken met Exchange Online PowerShell, kun je de geautomatiseerde methode gebruiken. Het voordeel van deze methode is het lagere aantal opdrachten dat je moet invoeren.

  1. Download het script van de website van Microsoft. De naam van het scriptbestand is ConnectExchangeOnlinePowerShell.ps1 in dit geval.
  2. Ga naar de map waar het script zich bevindt; in ons voorbeeld is het script opgeslagen in C:\temp_win\.
  3. Voordat je het script uitvoert, bewerk de scriptuitvoeringsbeleid (net zoals in de eerste methode), anders krijg je de fout:

    Het bestand C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 is niet digitaal ondertekend. Je kunt dit script niet uitvoeren op het huidige systeem.

    Je kunt het Bypass uitvoeringsbeleid toepassen om dit probleem te omzeilen:


    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. Typ Y om de wijziging van het uitvoeringsbeleid te bevestigen.
  5. Daarna kunt u het script uitvoeren. Als u geen MFA gebruikt, voert u het script uit zonder extra argumenten:

    .\ConnectExchangeOnlinePowerShell.ps1

    Als MFA (Multi-Factor Authentication) wordt gebruikt in uw Office 365-omgeving, probeer dan de volgende opdracht:


    .\ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Nu je succesvol bent verbonden met Exchange Online, kun je je gebruikersaccounts, hun postvakken, enz. beheren. Je kunt bijvoorbeeld de postvakken van je gebruikers weergeven:

    Get-Mailbox

    Deze script kan worden gebruikt om taken in te plannen en te automatiseren. Je kunt bijvoorbeeld verbinding maken met Exchange Online zonder referenties in te voeren in het interactieve venster zoals hierboven weergegeven. Je kunt je aanmeldingsnaam en wachtwoord invoeren op de commandoregel als opdrachtopties bij het uitvoeren van het script:


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

    Houd er rekening mee dat het invoeren van wachtwoorden als platte tekst in de commandoregel mogelijk niet veilig is.

  7. Wanneer je klaar bent met werken met Exchange Online in PowerShell, vergeet dan niet de sessie te beëindigen:

    ./ConnectExchangeOnlinePowerShell.ps1 -Verbreek

Alternatieve Methode

Laten we nog een methode bekijken die kan worden gebruikt om verbinding te maken met Exchange Online PowerShell. Deze methode kan worden beschouwd als een aanpassing van de eerste methode.

  1. Maak een nieuw profiel voor PowerShell met de functie:

    New-item -type file -force $profile

  2. Bewerk het profielconfiguratiebestand in de teksteditor om de functie met de titel Connect-EXOnline toe te voegen:

    notepad $profile

  3. Voeg de volgende inhoud toe aan het PowerShell-profielconfiguratiebestand en wijzig [email protected] naar je accountnaam, en sla vervolgens het tekstbestand op.

    Functie Connect-EXOnline
    {
    $credentials = Get-Credential -Credential [email protected]
    Write-Output “De Exchange Online-cmdlets ophalen”
    $Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
    -ConfigurationName Microsoft.Exchange -Credential $credentials `
    -Authentication Basic -AllowRedirection
    Import-PSSession $Session
    }

  4. Sluit het huidige PowerShell-venster en open een nieuw PowerShell-venster als beheerder. Voer het commando uit om verbinding te maken met Exchange Online PowerShell:

    Connect-ExOnline
    Voer uw wachtwoord in het pop-upvenster in.

  5. Als u klaar bent met werken in Exchange Online PowerShell, beëindig de sessie met het commando:

    Get-PSSession | Remove-PSSession

Conclusie

Exchange Online PowerShell is een mooie alternatief voor de webinterface van het Exchange Admin Center. Met Office 365 PowerShell en Exchange Online PowerShell kunt u bulkoperaties en acties uitvoeren met meerdere objecten door het gebruik van slechts één commando of script. De blogpost van vandaag heeft behandeld hoe u verbinding kunt maken met Exchange Online PowerShell door gebruik te maken van drie methoden, waarvan één geautomatiseerd is. Het werkingsprincipe van elke methode is vergelijkbaar en bestaat uit drie hoofdstappen: het maken van een externe PowerShell-sessie, authenticatie en het importeren van Exchange Online PowerShell-cmdlets.

Een belangrijke aanbeveling is dat u de externe PowerShell-sessie verbreekt wanneer u klaar bent met werken met Exchange Online PowerShell om te voorkomen dat alle sessies bezet zijn en het openen van een nieuwe externe Exchange Online PowerShell-sessie niet mogelijk is. Het hebben van Exchange Server in de cloud is een betrouwbare oplossing, maar zelfs in dat geval wordt aanbevolen om een back-up te maken van uw Exchange-server om uw gegevens te beschermen tegen incidentele verwijdering en andere rampen.

Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/