PowerShell-Cmdlets

Beachten Sie: Die folgende Zusammenstellung von PowerShell-Cmdlets ist eine Illustration der notwendigen Maßnahmen zur Vorbereitung einer erfolgreichen PowerShell-Verbindung zu Microsoft 365 Exchange Online. Die vollständige Dokumentation und Unterstützung bei Problemen finden Sie bei Microsoft. Insbesondere Vollständigkeit und Aktualität der folgenden Beispiele können abweichen.

PowerShell, CmdletsCmdlets, PowerShell

Voraussetzung

Die PowerShell-Beispiele setzen administrative Privilegien voraus. Öffnen Sie die PowerShell daher als Administrator. Verwenden Sie mindestens die Version 5.1 der PowerShell. Aktualisieren Sie gegebenenfalls die Version der lokalen PowerShell.

So prüfen Sie die Version der lokalen PowerShell:

$PSVersionTable

Die meisten Cmdlets erfordern externe Aufrufe. Speziell die Verbindung zu Exchange Online über die PowerShell benötigt die Möglichkeit des Fernzugriffs. Um fehlende Module und den PackageProvider zu installieren, müssen Sie gegebenenfalls die TLS-Version anpassen:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Damit die PowerShell Fernzugriffe durchführen kann, müssen Sie diese Funktion freischalten:

Enable-PSRemoting

Sie sollten dabei nur signierte externe Cmdlets und Skripte ausführen. Die Ausführung müssen sie manuell bestätigen:

Set-ExecutionPolicy RemoteSigned

Zertifikate

Bei Erzeugung eines selbstsignierten Zertifikats sollten Sie das Ergebnis bzw. den Fingerabdruck aus der PowerShell kopieren und zur weiteren Verwendung in anderen Cmdlets oder der Konfiguration von ELOxc separat speichern.

So erzeugen Sie ein Zertifikat:

New-SelfSignedCertificate -DnsName "dns.name" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange

Der Parameter DnsName sollte keine Wildcards enthalten. Das Host-Zertifikat von ELOxc (Z3) erfordert den lokalen Fully-Qualified Domain Name (FQDN), das Zertifikat der App-Registrierung (Z4) hingegen den Mandantennamen für Microsoft 365. Wir empfehlen, den Fingerabdruck neuer Zertifikate stets zu sichern.

In diesem Beispiel würde 0C202737F8B809FAFA532C61E878F8DEEB385787 als Z3 und 2E5B4D92DFBE8CFB49CF57106534EC50B12E6974 als Z4 verwendet werden. Da Z4 für die App-Registrierung in Microsoft 365 benötigt wird, müssen Sie es ohne privaten Schlüssel als CER-Datei exportieren:

$cert = Get-ChildItem -Path cert:\LocalMachine\My\2E5B4D92DFBE8CFB49CF57106534EC50B12E6974

$cert | Export-Certificate -FilePath C:\XcAppReg.cer

Wenn Sie für den Web-Host von ELOxc und die App-Registrierung dasselbe Zertifikat verwenden möchten (Z3=Z4), erzeugen Sie das Zertifikat mit zwei Werten für DnsName.

In diesem Fall würden Sie nur einen Fingerabdruck (hier: 9428F14E2E9A50DEC74D8EFD9D95DB5C3602F38D) benötigen. Sie können den DNS-Namen im lokalen Zertifikatspeicher überprüfen:

Modul für Exchange Online installieren

Vorab können Sie prüfen, ob das Modul für Exchange Online (Modul ExchangeOnlineManagement) lokal verfügbar ist:

Get-Module

Fehlt es, müssen Sie es zwingend herunterladen und installieren. Installieren Sie zuerst den PackageProvider für NuGet und importieren ihn. Danach benötigen Sie das Modul PowerShellGet.

So installieren und importieren Sie den PackageProvider:

Install-PackageProvider -Name NuGet -Force

Import-PackageProvider -Name NuGet

So installieren Sie das PowershellGet-Modul:

Install-Module PowershellGet -Force

Nun können Sie das Modul für Exchange Online installieren und importieren:

Install-Module -Name ExchangeOnlineManagement

Import-Module -Name ExchangeOnlineManagement

Modul für Exchange Online testen

Wenn das Modul für Exchange Online installiert ist, importiert es ELOxc zur Laufzeit automatisch. Ist der Import erfolgreich, kann die Verbindung zu Exchange Online aufgebaut werden. Wenn Sie die App-Registrierung eingerichtet haben, können Sie die PowerShell-Verbindung manuell testen. Verwenden Sie dazu die App-ID und den Mandanten (Tenant) der Registrierung:

Connect-ExchangeOnline -CertificateThumbPrint 2E5B4D92DFBE8CFB49CF57106534EC50B12E6974 -Organization "tenant.onmicrosoft.com" -AppID "cbfafa12-6c7-4586-a9c7-f94e923f1d26"

Nach erfolgreichem Verbindungsaufbau können Sie die beiden erforderlichen Cmdlets Get-Mailbox und Get-MailboxPermission testen:

Get-Mailbox -RecipientTypeDetails 'sharedmailbox' * | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select-Object -Property identity, user

Offene PowerShell-Verbindungen sollten Sie am Ende folgendermaßen schließen:

Disconnect-ExchangeOnline

Um den Zugriff der PowerShell-Verbindung durch ELOxc auf bestimmte Postfächer einzuschränken, können Sie New-ApplicationAccessPolicy verwenden. Dazu muss eine PowerShell-Verbindung bestehen:

New-ApplicationAccessPolicy -AppId cbfafa12-36c7-4586-a9c7-f94e923f1d26 -PolicyScopeGroupId xc2@tenant.onmicrosoft.com -AccessRight DenyAccess -Description "Exclude xc2"

War diese Information hilfreich?

  • Ja
  • Nein


Die Eingabe ist nicht korrekt. Bitte überprüfen Sie den Code.

*Pflichtfelder

  Über dieses Formular werden keine Supportanfragen beantwortet.
Falls Sie Unterstützung benötigen, wenden Sie sich an den zuständigen ELO-Partner oder ELO-Support.