[Ressourcen­zentrum](/content/de/resources/index.html) [Blog](/content/de/resources/?type=blog/index.html)

Verbindung mit Exchange Online PowerShell herstellen

# Verbindung mit Exchange Online PowerShell herstellen

Mar 31, 2025

_Exchange Online PowerShell ermöglicht eine sichere, automatisierte Verwaltung von Microsoft 365-E-Mail-Umgebungen. Mit dem EXO V2-Modul und moderner Authentifizierung sowie MFA können Administratoren Postfächer, Berechtigungen, Berichte und Migrationen in großem Umfang verwalten. Optionen auf Basis von Zertifikaten und verwalteten Identitäten unterstützen die Automatisierung, während Best Practices wie RBAC, TLS und Sitzungsverwaltung die Sicherheit und Compliance stärken._

## Einführung in Exchange Online PowerShell

Exchange Online PowerShell ist eine Befehlszeilen-Management-Schnittstelle zur Verwaltung und Automatisierung von Aufgaben in Exchange Online, das Teil von Microsoft 365 ist. Es ermöglicht Administratoren, Benutzerpostfächer zu verwalten, Organisationseinstellungen zu konfigurieren und Massenoperationen effizient über Skripte durchzuführen. Hier sind einige Vorteile der Verwendung von PowerShell für das Management von Exchange Online:

- Schreiben Sie Skripte, um wiederkehrende Aufgaben wie das Erstellen von Postfächern und das Zuweisen von Berechtigungen zu automatisieren.
- Verwalten Sie Objekte in großen Mengen, wie das Aktualisieren oder Modifizieren mehrerer Benutzerkonten, Postfächer oder Gruppen in einem Durchgang, sowie das Exportieren und Importieren von Daten über CSV-Dateien.
- Stellen Sie aus der Ferne eine Verbindung zu Exchange Online von jedem unterstützten Gerät her und führen Sie administrative Aufgaben sicher über verschlüsselte Sitzungen aus.
- Erhalten Sie erweiterte Berichterstellung und Überwachung. Zum Beispiel können Sie angepasste Berichte in CSV-, Excel- oder HTML-Formaten erstellen und Sie können [audit mailbox access](/content/how_to_monitor_mailbox_permission_changes.html?cID=70170000000kgEZ/index.html) und administrative Aktionen mit präzisen Filtern überwachen.
- Zugriff auf versteckte oder erweiterte Einstellungen, die nicht in der EAC-Web-Oberfläche angezeigt werden.

## Exchange Online Mailbox Auditing Quick Reference Guide

[Learn more](/content/de/resources/guides/exchange-online-auditing/index.html)

## Voraussetzungen für die Verbindung mit Exchange Online PowerShell

Um eine Verbindung mit Exchange Online PowerShell herzustellen, müssen bestimmte Voraussetzungen erfüllt sein.

**Systemanforderungen**

- Betriebssystem: Windows 10, Windows 11 oder Windows Server 2016/2019/2022
- Windows PowerShell 5.1 oder höher
- .NET Framework 4.7.2 oder höher

**Netzwerkanforderungen**

- Stellen Sie sicher, dass ausgehender HTTPS (TCP 443) Verkehr zugelassen ist
- TLS 1.2 muss aktiviert sein
- Internetzugang und die Fähigkeit, eine Verbindung zu outlook.office365.com, login.microsoftonline.com und graph.microsoft.com herzustellen

**Erforderliches Modul**

- Exchange Online Management-Modul

**Anforderungen an die Authentifizierung**

- Für Microsoft Entra ID sollte das Konto die notwendigen Berechtigungen haben, wie zum Beispiel:
- Globaler Administrator
- Exchange-Administrator
- Konten mit aktivierter MFA benötigen das Exchange Online PowerShell-Modul für moderne Authentifizierung

**Erforderliche Berechtigungen**

Ihr Konto sollte über die entsprechenden RBAC (Role-Based Access Control)-Rollen verfügen:

- Organisationsmanagement
- Empfängerverwaltung

## So verbinden Sie sich mit Exchange Online PowerShell

Die verschiedenen Methoden, um sich mit Exchange Online PowerShell zu verbinden, sind:

**Connect-ExchangeOnline-Modul (Moderne Methode)**

Sie können sich mit dem Exchange Online Management Module (EXO V2) mit Exchange Online verbinden. Diese Methode wird für alltägliche Administrations- und Verwaltungsaufgaben empfohlen. Sie unterstützt moderne Authentifizierung (OAuth) und MFA.

**Azure Cloud Shell (Browser-basierte Verbindung)**

Diese Methode ermöglicht es Administratoren, Exchange Online PowerShell direkt aus dem Azure Portal zu verwenden, ohne eine lokale Installation zu benötigen. Exchange Online PowerShell ist von jedem Gerät mit einem Browser aus zugänglich und verfügt über vorinstallierte Module und Werkzeuge. Diese Methode wird für Administratoren empfohlen, die es vorziehen, über den Browser zu verwalten oder nur eingeschränkten Zugang zu PowerShell-Tools lokal haben. Der Zugriffspfad lautet: Azure Portal > Cloud Shell > PowerShell.

**Exchange Online Remote PowerShell (Deprecated)**

Diese veraltete Methode, die Remote PowerShell (WSMan-Protokoll) verwendet, um eine Verbindung mit Exchange Online PowerShell herzustellen, ist veraltet und wird für neue Bereitstellungen nicht empfohlen, kann jedoch für ältere Skripte oder Systeme verwendet werden, die das neuere Exchange Online Management Modul nicht unterstützen. Diese Methode unterstützt keine MFA.

**Verwendung von Service Principal (Zertifikatbasierte Authentifizierung)**

Diese Methode ermöglicht unbeaufsichtigte oder skriptbasierte Verwaltung über Service Principal Accounts und zertifikatbasierte Authentifizierung. Sie wird für Automatisierung, CI/CD Pipelines und Hintergrundprozesse empfohlen. Als Voraussetzung ist erforderlich: Azure [AD](/content/what_is_active_directory_ebook.html) App-Registrierung und Zertifikateinrichtung.

**Vergleich der Verbindungsmethoden**

| **Methode** | **Am besten für** | **Unterstützt MFA** | **Unterstützt Automatisierung** |
| --- | --- | --- | --- |
| Connect-ExchangeOnline (EXO V2 Modul) | Alltägliche Administrationsaufgaben | Ja | Ja |
| Azure Cloud Shell | Schneller Browserzugriff | Ja | Nein |
| Remote PowerShell (WSMan) | Legacy-Skripte | Nein | Ja |
| Service Principal (Zertifikatsauthentifizierung) | Automatisierung, CI/CD | Nein | Ja |

## Verständnis der modernen Authentifizierung und ihrer Vorteile

Moderne Authentifizierung ist eine Identity Management-Methode, die OAuth 2.0 und Active Directory Authentication Library (ADAL) oder Microsoft Authentication Library (MSAL) für sichere Anmeldungen nutzt. Sie ersetzt traditionelle Authentifizierungsmethoden wie die Basisauthentifizierung.

Moderne Authentifizierung ist der empfohlene und sichere Weg, um eine Verbindung mit Exchange Online PowerShell herzustellen, da sie folgende Vorteile bietet:

- Erhöht die Sicherheit, da es OAuth 2.0 für die Token-basierte Authentifizierung verwendet, anstatt Anmeldeinformationen direkt zu übermitteln.
- Ermöglicht die Verwendung von MFA und fügt eine zusätzliche Sicherheitsebene hinzu.
- Ermöglicht Administratoren, Richtlinien basierend auf Gerätekonformität, Standort oder Risikostufe durchzusetzen, was den Zugriff auf Exchange Online Ressourcen basierend auf definierten Bedingungen einschränkt.
- Nahtlose Integration mit Microsoft Entra ID und Drittanbieter-Identitätsanbietern, mit Unterstützung für Single Sign-On (SSO).

Microsoft stellt die Basisauthentifizierung ein, daher ist die Migration zur modernen Authentifizierung entscheidend.

## Anforderungen für die Verbindung zu Exchange Online PowerShell mit oder ohne MFA

Hier sind die Anforderungen für die Verbindung zu Exchange Online PowerShell mit oder ohne MFA.

|     |     |
| --- | --- |
| **Ohne MFA (Basic Authentication – Veraltete Legacy-Methode)** | Microsoft Entra ID account must not have MFA enabledBasic authentication must still be allowed (if not blocked organization-wide) |
| **Mit MFA (Modern Authentication)** | Das Microsoft Entra ID-Konto muss MFA konfiguriert habenOAuth 2.0 muss unterstützt werden (Standard in Exchange Online) |

### Schritt-für-Schritt-Anleitung zum Verbinden

Hier sind die kurzen Schritte, um sich mit Exchange Online PowerShell zu verbinden:

1. Installieren Sie das Exchange Online PowerShell-Modul.
2. Stellen Sie eine Verbindung zu Exchange Online her, indem Sie das Connect-ExchangeOnline-Cmdlet verwenden. Geben Sie Ihre Microsoft 365 Exchange-Admin-Anmeldeinformationen ein, wenn Sie dazu aufgefordert werden.
3. Sobald Sie mit der Exchange Online-Umgebung verbunden sind, können Sie die in dem Exchange Online PowerShell-Modul verfügbaren Cmdlets verwenden, um Einstellungen und Objekte wie Postfächer, Kontakte und Kalender in Exchange Online zu verwalten.

## Installieren Sie das Exchange Online Management Module

Das Exchange Online Management-Modul kann auf Windows-, Mac- und Linux-Systemen installiert werden. Öffnen Sie PowerShell als Administrator und führen Sie den folgenden Befehl aus, um das neueste Exchange Online Management-Modul zu installieren:

`Install-Module -Name ExchangeOnlineManagement -Force`

Führen Sie das folgende Cmdlet aus, um zu überprüfen, ob das Exchange Online Management-Modul installiert ist:

`Get-Module -ListAvailable -Name ExchangeOnlineManagement`

Wenn es korrekt installiert ist, sollten die Moduldetails angezeigt werden.

Das Exchange Online PowerShell-Modul verwendet moderne Authentifizierung, um eine Verbindung zu allen Exchange-bezogenen PowerShell-Umgebungen herzustellen.

**Aktualisieren Sie das Modul**

Um das vorhandene Exchange Online Management-Modul zu aktualisieren, verwenden Sie das folgende Cmdlet:

`Update-Module ExchangeOnlineManagement`

**Importieren Sie das Modul**

Laden Sie das Modul in Ihre PowerShell-Sitzung mit dem folgenden Cmdlet:

`Import-Module ExchangeOnlineManagement`

## Ausführungsrichtlinie festlegen

Beim Verbinden mit Exchange Online PowerShell bestimmt die Ausführungsrichtlinie für PowerShell, wie Skripte auf Ihrem System ausgeführt werden. `RemoteSigned` ist die empfohlene Richtlinie, da sie sicherstellt, dass:

- Lokal erstellte Skripte können ohne eine digitale Signatur ausgeführt werden
- Skripte, die aus dem Internet heruntergeladen werden, müssen von einem vertrauenswürdigen Herausgeber signiert sein

Verwenden Sie das folgende Cmdlet, um die Ausführungsrichtlinie auf RemoteSigned zu setzen:

`Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`

## Verbindung herstellen mit Basic Authentication (Veraltet)

Microsoft hat die Basisauthentifizierung für Exchange Online ab Oktober 2022 dauerhaft deaktiviert. Sie wurde durch moderne Authentifizierung (OAuth 2.0) ersetzt.

## Verbinden Sie sich mit moderner Authentifizierung

Moderne Authentifizierung (OAuth 2.0) ist die empfohlene und sichere Methode, um sich mit Exchange Online PowerShell zu verbinden. Verschiedene Methoden zur Verbindung sind:

| **Methode** |
| --- |
| Interaktive Authentifizierung (GUI-Aufforderung) | Dies ist die Standardverbindungsmethode für die meisten Mandanten, wie zum Beispiel Standard-Microsoft 365-Handelsmandanten. Verwenden Sie dieses Cmdlet, um eine Verbindung mit moderner Authentifizierung herzustellen: Connect-ExchangeOnline -UserPrincipalName [admin@yourdomain.com](mailto:admin@yourdomain.com) Ersetzen Sie admin@yourdomain.com durch Ihr Exchange Online Admin-Konto. Ein Anmeldefenster wird erscheinen; vervollständigen Sie den Anmeldeprozess, einschließlich Multi-Faktor-Authentifizierung (MFA), falls erforderlich. |
| Gerätecode-Authentifizierung (für Nicht-GUI-Umgebungen) | Wenn Sie in einer nicht-GUI-Umgebung arbeiten, verwenden Sie den -Device-Parameter: Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com -Device Kopieren Sie den bereitgestellten Gerätecode. Öffnen Sie [https://microsoft.com/devicelogin](https://microsoft.com/devicelogin) in einem Browser. Geben Sie den Gerätecode ein. Authentifizieren Sie sich mit Ihrem Konto und schließen Sie die MFA ab (falls erforderlich). |
| Verbinden mit zertifikatsbasierter Authentifizierung (nicht-interaktiv) | Für Automatisierung oder unbeaufsichtigte Skripte: Connect-ExchangeOnline -CertificateThumbprint „<CertificateThumbprint>“ -AppId „<AppId>“ -Organization „<YourTenant>“ Ersetzen Sie: „<CertificateThumbprint>“ durch Ihren Zertifikatsfingerabdruck, „<AppId>“ durch die Microsoft Entra ID App-ID, „<YourTenant>“ durch Ihre Domain (wie yourdomain.onmicrosoft.com). |

**Beispielverbindungen für verschiedene Exchange Online-Umgebungen (GCC, GCC High, DoD)**

Verschiedene Exchange Online-Umgebungen erfordern spezifische Verbindungs-URIs und Konfigurationen bei der Verwendung moderner Authentifizierung. Beispiele für diese Umgebungen sind:

| **Methode** | **Verbindungsinformationen** |
| --- | --- |
| Microsoft 365 GCC (Government Community Cloud) | Anwendungsfall: US-Regierungskunden (GCC) Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com Ersetzen Sie admin@contoso.onmicrosoft.com durch Ihr Exchange Online Admin-Konto. Ein Anmeldefenster wird erscheinen; vervollständigen Sie den Anmeldeprozess, einschließlich Multi-Faktor-Authentifizierung (MFA), falls erforderlich. |
| Microsoft 365 GCC High | Anwendungsfall: US-Regierungskunden mit hohen Sicherheitsanforderungen Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com -ExchangeEnvironmentName O365USGovGCCHigh -ExchangeEnvironmentName – Legt explizit die GCC High-Umgebung fest |
| Microsoft 365 DoD (Department of Defense) | Anwendungsfall: Reserviert für Mieter des US-Verteidigungsministeriums (DoD) Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com -ExchangeEnvironmentName O365USGovDoD -ExchangeEnvironmentName: Setzt explizit die Umgebung auf die Office 365 US Government DoD-Umgebung |

## Verwendung der Multi-Faktor-Authentifizierung

Schritt-für-Schritt-Verbindungsprozess mit aktivierter MFA

## Verbindung mit Managed Identities

Die Verwendung von Managed Identities zur Verbindung mit Exchange Online PowerShell ermöglicht eine sichere, passwortlose Authentifizierung in Microsoft Entra.

**Was sind Managed Identities?**

Verwaltete Identitäten ermöglichen es Microsoft Entra-Ressourcen, sich bei unterstützten Diensten zu authentifizieren, ohne Anmeldeinformationen in Skripten oder Code zu speichern. Exchange Online unterstützt diese Funktion für unbeaufsichtigte Skriptausführungen mithilfe von Azure Automation oder ähnlichen Szenarien.

**Systemzugewiesene vs. benutzerzugewiesene verwaltete Identitäten**

| **Feature** | **Systemzugewiesene** | **Benutzerzugewiesene** |
| --- | --- | --- |
| An eine Ressource gebunden | Mit einer einzelnen Microsoft Entra-Ressource verknüpft (wie VM, Logic App). Es wird gelöscht, wenn die Ressource gelöscht wird. | Kann über mehrere Ressourcen hinweg geteilt werden |
| Managementbereich | Automatisch verwaltet für seine Ressource | Unabhängig verwaltet und wiederverwendbar |
| Anwendungsfall | Geeignet für Szenarien mit einer einzigen Ressource | Ideal für die gemeinsame Nutzung oder Mehrfachressourcen |

### Verbinden Sie sich mit Exchange Online PowerShell unter Verwendung von Managed Identities

**Voraussetzungen**

- Stellen Sie sicher, dass Ihre Azure-Ressource (z. B. VM, Function App, App Service) über eine systemzugewiesene oder benutzerzugewiesene verwaltete Identität verfügt.
- Weisen Sie der Managed Identity die notwendige Microsoft Entra ID-Rolle für Exchange Online zu. Zum Beispiel:
- Exchange-Administrator
- Global Reader oder Global Administrator (wenn umfassendere Berechtigungen erforderlich sind).
- Installieren und importieren Sie das Exchange Online PowerShell-Modul.

**So verbinden Sie**

Verwenden Sie Connect-ExchangeOnline mit dem -ManagedIdentity Parameter.

- Beispiel für eine systemzugewiesene verwaltete Identität:

`Connect-ExchangeOnline -ManagedIdentity -Organization <YourDomain>.onmicrosoft.com`

- Beispiel für eine benutzerzugewiesene verwaltete Identität:

```
      # Specify the Client ID of the User-Assigned Managed Identity

Connect-ExchangeOnline -ManagedIdentity -Organization <YourDomain>.onmicrosoft.com -ManagedIdentityAccountId <UserAssignedManagedIdentityClientIdValue>

```

Für unbeaufsichtigte Szenarien, wie Automatisierungsaufgaben oder CI/CD-Pipelines:

- Speichern Sie das Skript an einem sicheren Ort, wie Azure Automation, Azure DevOps oder einer VM mit aktivierter Managed Identity.
- Verwenden Sie Managed Identities zur Authentifizierung, um die explizite Verwaltung von Anmeldeinformationen zu vermeiden.

Beispielskript:

```
      # Connect to Exchange Online

Connect-ExchangeOnline -ManagedIdentity

# Example Exchange Online commands

Get-Mailbox -RecipientTypeDetails UserMailbox | Select-Object DisplayName, PrimarySmtpAddress

# Disconnect the session

Disconnect-ExchangeOnline -Confirm:$false

```

Sehen Sie sich den Artikel [Use Azure managed identities to connect to Exchange Online PowerShell](https://learn.microsoft.com/en-us/powershell/exchange/connect-exo-powershell-managed-identity?view=exchange-ps) von Microsoft für weitere Informationen an.

## Windows PowerShell Scripting Tutorial (PDF) for Beginners

[Learn more](/content/de/resources/guides/windows-powershell-scripting-tutorial/index.html)

## Syntax und allgemeine Verbindungsparameter

### Syntax

Das Cmdlet Connect-ExchangeOnline hat die folgende Syntax:

`Connect-ExchangeOnline`

`[[-ConnectionUri] <String>]`

`[[-AzureADAuthorizationEndpointUri] <String>]`

`[[-ExchangeEnvironmentName] <ExchangeEnvironment>]`

`[[-PSSessionOption] <PSSessionOption>]`

`[[-DelegatedOrganization] <String>]`

`[[-Prefix] <String>]`

`[[-CommandName] <String[]>]`

`[[-FormatTypeName] <String[]>]`

`[-AccessToken <String>]`

`[-AppId <String>]`

`[-BypassMailboxAnchoring]`

`[-Zertifikat <X509Certificate2>]`

`[-CertificateFilePath <String>]`

`[-CertificatePassword <SecureString>]`

`[-CertificateThumbprint <String>]`

`[-Credential <PSCredential>]`

`[-Device]`

`[-EnableErrorReporting]`

`[-InlineCredential]`

`[-LoadCmdletHelp]`

`[-LogDirectoryPath <String>]`

`[-LogLevel <LogLevel>]`

`[-ManagedIdentity]`

`[-ManagedIdentityAccountId <String>]`

`[-Organization <String>]`

`[-PageSize <UInt32>]`

`[-ShowBanner]`

`[-ShowProgress <Boolean>]`

`[-SigningCertificate <X509Certificate2>]`

`[-SkipLoadingCmdletHelp]`

`[-SkipLoadingFormatData]`

`[-TrackPerformance <Boolean>]`

`[-UseMultithreading <Boolean>]`

`[-UserPrincipalName <String>]`

`[-UseRPSSession]`

`[<CommonParameters>]`

### Allgemeine Parameter

**Einige grundlegende Parameter sind:**

| **Parameter** | **Beschreibung** |
| --- | --- |
| -UserPrincipalName | Gibt das Konto an, das Sie verwenden möchten, um eine Verbindung mit Exchange Online PowerShell herzustellen. Dieser Parameter ermöglicht es Ihnen, das Eingeben eines Benutzernamens in der Aufforderung für moderne Authentifizierung zu überspringen. |
| -Credential | Gibt den Benutzernamen und das Passwort an, das zur Verbindung mit Exchange Online PowerShell verwendet wird |
| -DelegatedOrganization | Gibt die Kundenorganisation an, die Sie verwalten möchten, wenn Sie als delegierter Administrator handeln |
| -ConnectionUri | Gibt den Exchange Online-Verbindungsendpunkt an (wird in spezialisierten Umgebungen wie GCC oder China-Mandanten verwendet) |
| -CertificateThumbprint | Stellt eine Verbindung mit einem Zertifikat anstelle von Benutzername/Passwort her. Ein gültiger Wert ist der Fingerabdruckwert des Zertifikats. |
| -AppId | Wird zusammen mit -CertificateThumbprint verwendet, um eine Microsoft Entra ID-Anwendungs-ID anzugeben |
| -AccessToken | Gibt ein OAuth 2.0-Zugriffstoken für die Authentifizierung an |
| -Organisation | Gibt die Organisation an, wenn Sie eine Verbindung mit CBA oder verwalteter Identität herstellen |

**Einige optionale Parameter sind:**

| **Parameter** | **Beschreibung** |
| --- | --- |
| -ShowProgress | Gibt an, ob die Fortschrittsanzeige der importierten Cmdlets beim Verbinden angezeigt oder ausgeblendet werden soll. Gültige Werte sind $true und $false. |
| -SkipLoadingFormatData | Beschleunigt Verbindungen, indem das Laden von Formatierungs- und Typdatendateien übersprungen wird |
| -InlineCredential | Übergibt Anmeldeinformationen direkt in der Befehlszeile, um Aufforderungen beim Verbinden mit Exchange Online PowerShell zu vermeiden |
| -LogDirectoryPath | Gibt den Speicherort der Protokolldatei an |
| -LogLevel | Gibt das Protokollierungsniveau an. Gültige Werte sind Default und All. |
| -ConnectionTimeout | Gibt den Timeout-Wert (in Sekunden) für den Verbindungsversuch an |
| -Gerät | Normalerweise wird dieser Schalter auf Computern ohne Webbrowser verwendet. Sie müssen keinen Wert für diesen Schalter angeben. |
| -ManagedIdentity | Gibt an, dass Sie Managed Identity zur Verbindung verwenden. Sie müssen keinen Wert für diesen Schalter angeben. |

**Spezifische Parameter für Verbindungen in Hochsicherheitsumgebungen:**

Für GCC-Umgebungen

| **Parameter** | **Beschreibung** |
| --- | --- |
| -ConnectionUri | Gibt den Endpunkt für GCC-Mieter an |
| -EntraIDAuthorizationEndpointUri | Gibt den Autorisierungsendpunkt für GCC an |
| -ExchangeEnvironmentName | Gibt explizit die GCC High-Umgebung an |

Für DoD-Umgebungen

| **Parameter** | **Beschreibung** |
| --- | --- |
| -ConnectionUri | Verweist auf den DoD-spezifischen Endpoint |
| -ExchangeEnvironmentName | Legt die Umgebung explizit auf DoD fest |

## Automatisierung von Verbindungen

## App-Only-Authentifizierung für unbeaufsichtigte Skripte

Die zertifikatsbasierte Authentifizierung (CBA) oder App-Only-Authentifizierung unterstützt unbeaufsichtigte Skript- und Automatisierungsszenarien durch die Verwendung von Microsoft Entra-Apps und selbstsignierten Zertifikaten.

Die App-Only-Authentifizierung ermöglicht es Diensten, Skripten oder Hintergrundprozessen, APIs und Ressourcen sicher zu nutzen, ohne dass Benutzerinteraktion erforderlich ist. Dies ist ideal für Automatisierungsszenarien wie geplante Aufgaben, Datenabgleich oder Backend-Verarbeitung.

### Schritte zur Konfiguration der App-Only-Authentifizierung

1. Gehen Sie zu Ihrem Identity Provider, wie zum Beispiel Microsoft Entra ID, und registrieren Sie die App. Notieren Sie dann die Client-ID, Tenant-ID und generieren Sie ein Client Secret oder laden Sie ein Zertifikat hoch.
2. Weisen Sie die erforderlichen API-Berechtigungen zu. Sie sollten Anwendungs-API-Berechtigungen anstelle von delegierten API-Berechtigungen erteilen.
3. Erstellen und konfigurieren Sie ein selbstsigniertes X.509-Zertifikat. Dies wird verwendet, um Ihre Anwendung gegen Microsoft Entra ID zu authentifizieren, wenn das App-Only-Access-Token angefordert wird.
4. Registrieren Sie das Zertifikat mit Ihrer Anwendung. Dies ermöglicht Ihnen die Verwendung des privaten Schlüssels (.pfx-Datei) oder des Fingerabdrucks zur Authentifizierung.
5. Um der Anwendung angemessene RBAC-Rollen zuzuweisen, verwenden Sie eine der unterstützten integrierten Rollen in Microsoft Entra.

Jetzt können Sie sich mit den Cmdlets aus dem Abschnitt Connect Using Modern Authentication bei Exchange Online PowerShell verbinden.

Sehen Sie sich den Artikel von Microsoft über die App-only-Authentifizierung für unbeaufsichtigte Skripte in Exchange Online PowerShell und Security & Compliance PowerShell für weitere Informationen an.

### Beispielskript für PowerShell zur unbeaufsichtigten Authentifizierung

```
      $TenantId = “your-tenant-id”

$ClientId = “your-client-id”

$ClientSecret = “your-client-secret”

$Resource = “https://graph.microsoft.com/”

# Get token

$Body = @{

grant_type = “client_credentials”

client_id = $ClientId

client_secret = $ClientSecret

scope = “$Resource/.default”

}

$TokenResponse = Invoke-RestMethod -Uri “https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token” -Method Post -Body $Body

$AccessToken = $TokenResponse.access_token

Write-Output “Access Token: $AccessToken”

```

## Verbindung mit Zertifikaten

Die Verwendung von Zertifikaten für die Automatisierung bietet eine zusätzliche Sicherheitsebene im Vergleich zu Clientgeheimnissen. Zertifikate sind ideal für die ausschließliche App-Authentifizierung in Skripten oder Hintergrundjobs, da sie das Speichern sensibler Geheimnisse als Klartext vermeiden.

### Schritt-für-Schritt-Anleitung zur Verwendung von Zertifikaten für die Automatisierung

1. Erstellen Sie ein selbstsigniertes Zertifikat. Sie können Tools wie PowerShell, OpenSSL oder jedes Zertifikatsverwaltungstool verwenden, um es zu generieren.

So können Sie es mit PowerShell generieren:

```
      # Generate a self-signed certificate

$cert = New-SelfSignedCertificate -DnsName “yourapp.domain.com” -CertStoreLocation “Cert:\CurrentUser\My” -KeyExportPolicy Exportable

# Export the certificate and private key as a PFX file

$certPath = “C:\path\to\certificate.pfx”

$certPassword = ConvertTo-SecureString -String “yourpassword” -Force -AsPlainText

Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword

```

- Registrieren Sie die Anwendung bei Ihrem Identitätsanbieter, wie zum Beispiel Microsoft Entra ID. Sie müssen auch den öffentlichen Schlüssel des Zertifikats hochladen. Dafür:
- Gehen Sie zum Abschnitt für die App-Registrierung.
- Fügen Sie ein Schlüsselzertifikat mit der .crt-Datei (öffentlicher Schlüssel) hinzu.
- Notieren Sie die App-ID und die Tenant-ID.
- Die Anwendung wird den privaten Schlüssel verwenden, um ein JWT für die App-Only-Authentifizierung zu signieren.

### Best Practices für die Sicherheit bei zertifikatsbasierten Verbindungen

- Speichern Sie Zertifikate an einem sicheren Ort, wie zum Beispiel Azure Key Vault. Vermeiden Sie es, Pfade oder Schlüssel hart in Skripten zu kodieren.
- Verwenden Sie Zertifikate mit einer kurzen Gültigkeitsdauer. Erneuern Sie Zertifikate, bevor sie ablaufen.
- Widerrufen Sie kompromittierte oder ungenutzte Zertifikate sofort.
- Beschränken Sie den Zugriff auf die App und ihre Ressourcen mit dem [Principle of Least Privilege](https://blog.netwrix.com/2019/04/30/what-is-the-principle-of-least-privilege/), und definieren Sie genaue API-Bereiche.
- Protokollieren Sie die Zertifikatsnutzung zu Überwachungszwecken.
- Überwachen Sie die App-Authentifizierung, um unbefugten Zugriff zu erkennen.
- Verwenden Sie Verschlüsselung, um private Schlüsseldateien wie .pfx zu sichern.
- Schützen Sie private Schlüssel mit starken Passwörtern.
- Erfordern Sie MFA für die Verwaltung von App-Konfigurationen. Dies kann die Durchsetzung von MFA für Administratoren erfordern.

## Sitzungen verwalten und trennen

Das ordnungsgemäße Verwalten und Beenden von Exchange Online PowerShell-Sitzungen ist entscheidend, um die Sicherheit zu gewährleisten, die Ressourcennutzung zu optimieren und eine Erschöpfung der Sitzungen zu verhindern. Hier sind einige bewährte Methoden, denen Sie folgen sollten.

**Best Practices für das Management von Exchange Online PowerShell-Sitzungen**

- Verwenden Sie das Exchange Online Management Module (EXO V2) für moderne Authentifizierung und verbesserte Sicherheit.
- Melden Sie sich mit einem Konto an, das nur die für Ihre Aufgaben notwendigen Berechtigungen hat, wie zum Beispiel Rollen wie Exchange Admin und Security Admin.
- Exchange Online hat ein maximales Sitzungslimit (3 gleichzeitige Sitzungen pro Benutzer). Stellen Sie sicher, dass Sitzungen nach Abschluss der Aufgaben geschlossen werden, um dieses Limit nicht zu überschreiten.
- Beachten Sie das Standard-Timeout für Exchange Online-Sitzungen (normalerweise 15 Minuten Inaktivität). Wenn Leerlauf-Timeouts häufig auftreten, optimieren Sie Skripte für Effizienz.
- Führen Sie Skripte nach Möglichkeit in einer einzigen Sitzung aus. Vermeiden Sie es, Sitzungen lange Zeit untätig zu lassen.

**Best Practices für das Beenden von Exchange Online PowerShell-Sitzungen**

- Trennen Sie immer Ihre Sitzung, wenn Sie fertig sind. Das einfache Schließen des PowerShell-Fensters ohne Trennung kann verwaiste Sitzungen hinterlassen. Trennen Sie immer explizit die Verbindung.
- Das Remove-PSSession Cmdlet bereinigt Exchange Online-Sitzungen nicht vollständig. Bevorzugen Sie immer:

`Disconnect-ExchangeOnline -Confirm:$false`

- Wenn Sie vermuten, dass verwaiste Sitzungen Ressourcen verbrauchen, beenden Sie diese mit:

`Get-PSSession | Remove-PSSession`

- Wenn eine Sitzung abläuft, stellen Sie die Verbindung ausdrücklich wieder her, anstatt anzunehmen, dass die Sitzung noch gültig ist.

## Zugriff auf Exchange Online PowerShell für einen Benutzer aktivieren oder deaktivieren

Sie müssen über ausreichende administrative Privilegien verfügen, wie die Rolle des Global Administrator oder Exchange Administrator, um den Benutzerzugriff auf Exchange Online PowerShell zu aktivieren oder zu deaktivieren. Darüber hinaus ist auch die Mitgliedschaft in den Rollengruppen Organization Management oder Recipient Management erforderlich.

Das Deaktivieren des PowerShell-Zugriffs betrifft nur die Fähigkeit des Benutzers, sich mit Exchange Online PowerShell zu verbinden. Es hat keinen Einfluss auf ihren Zugang zu anderen Diensten wie dem Microsoft 365 Admin Center.

### **Deaktivieren Sie den Zugang für einen Benutzer**

Wenn Sie den PowerShell-Zugriff deaktivieren, kann der Benutzer keine Verbindung zu Exchange Online PowerShell mit seinen Anmeldeinformationen herstellen. Hier ist das Cmdlet, um den Zugriff zu deaktivieren:

`Set-User -Identity <UserPrincipalName> -EXOModuleEnabled $false`

### **Aktivieren Sie den Zugang für einen Benutzer**

Wenn Sie den PowerShell-Zugriff aktivieren, kann sich der Benutzer mit Exchange Online PowerShell verbinden. Hier ist das Cmdlet, um den Zugriff zu ermöglichen:

`Set-User -Identity <UserPrincipalName> -EXOModuleEnabled $tru`e

### **Überprüfen Sie den PowerShell-Zugriffsstatus eines Benutzers**

Um zu überprüfen, ob ein Benutzer PowerShell-Zugriff aktiviert oder deaktiviert hat, verwenden Sie den folgenden Befehl:

`Get-User -Identity „<UserPrincipalName>“ | Format-List EXOModuleEnabled`

Um alle Benutzer zu erhalten, die keinen Zugriff auf Exchange Online PowerShell haben, verwenden Sie das folgende Cmdlet:

`Get-User -ResultSize unlimited -Filter ‘RemotePowerShellEnabled -eq $false’`

Um alle Benutzer zu erhalten, die Zugriff auf Exchange Online PowerShell haben, verwenden Sie das folgende Cmdlet:

`Get-User -ResultSize unlimited -Filter ‘RemotePowerShellEnabled -eq $true’`

## Trennen Sie die Verbindung von Exchange Online

### **Wenn Sie Exchange Online PowerShell V2 (EXO V2) verwenden:**

Wenn Sie sich mit dem Connect-ExchangeOnline-Cmdlet verbunden haben, können Sie die Verbindung mit dem folgenden Befehl trennen:

`Disconnect-ExchangeOnline -Confirm:$false`

Der `-Confirm`-Parameter ist optional und wird verwendet, um Bestätigungsaufforderungen zu unterdrücken. Standardmäßig könnten einige Cmdlets vor dem Fortfahren mit einer Aktion (wie dem Trennen einer Sitzung) um Bestätigung bitten.

`$false` gibt an, dass Sie nicht zur Bestätigung aufgefordert werden möchten. Dies ermöglicht es dem Befehl, automatisch auszuführen, ohne Sie zu fragen, ob Sie sicher sind, dass Sie die Verbindung trennen möchten.

### **Wenn Sie das ältere Exchange Online PowerShell-Modul verwenden:**

Wenn Sie die ältere Remote-PowerShell-Sitzung verwendet haben (zum Beispiel beim Verbinden mit New-PSSession), können Sie die Verbindung trennen, indem Sie die Sitzung wie folgt entfernen:

`Remove-PSSession $Session`

In diesem Fall ist $Session die Variable, in der Sie Ihr PowerShell-Sitzungsobjekt gespeichert haben, als Sie sich zum ersten Mal verbunden haben.

## Häufige Verbindungsprobleme und Fehlerbehebung

Bei der Arbeit mit Exchange Online PowerShell können Verbindungsprobleme auftreten. Lassen Sie uns diese Probleme und ihre Lösungen betrachten.

### Modul nicht installiert oder veraltet

Sie sehen Fehler wie:

- Der Begriff 'Connect-ExchangeOnline' wird nicht erkannt.
- Das Modul ‘ExchangeOnlineManagement’ ist nicht installiert.

**Lösung:**

Das Exchange Online Management Module (EXO V2) sollte installiert und aktualisiert werden. Verwenden Sie dieses Cmdlet, um zu überprüfen, ob das Modul korrekt installiert ist:

`Get-Module -ListAvailable -Name ExchangeOnlineManagement`

### Falsche Anmeldeinformationen oder Authentifizierungsprobleme

Sie könnten auf Probleme wie folgt stoßen:

- Es liegt ein Authentifizierungsfehler vor
- MFA-Aufforderungen schlagen fehl

**Lösung:**

- Verwenden Sie moderne Authentifizierung mit den richtigen Anmeldeinformationen.
- Stellen Sie sicher, dass Ihr Konto MFA unterstützt und Sie nicht blockiert sind.
- Löschen Sie alle zwischengespeicherten Anmeldeinformationen.
- Wenn Ihr Konto bedingte Zugriffsrichtlinien hat, überprüfen Sie, ob sie den Zugriff auf Exchange Online erlauben.

### Erschöpfung des Sitzungslimits

Zu viele offene Sitzungen verhindern Ihre Verbindung, und es kann zu einer Fehlermeldung kommen:

- Maximale Anzahl gleichzeitiger Sitzungen überschritten.

**Lösung:**

- Trennen Sie inaktive Sitzungen.
- Stellen Sie sicher, dass Sie sich nach jeder Sitzung ordnungsgemäß trennen.
- Überwachen Sie aktive Sitzungen.

## Proxy oder Firewall blockiert die Verbindung

Die Verbindung hängt oder schlägt fehl aufgrund einer Proxy- oder Firewall-Beschränkung, und Sie erhalten diesen Fehler:

- Verbindung zum entfernten Server nicht möglich.

**Lösung:**

- Stellen Sie sicher, dass Ihre Proxy-Einstellungen korrekt konfiguriert sind:
- Erlauben Sie Exchange Online PowerShell-Endpunkte durch die Firewall:
- \*.outlook.office365.com
- \*.office365.com
- \*.microsoftonline.com
- Testen Sie die Konnektivität mit:

`Test-NetConnection outlook.office365.com -Port 443`

## Veraltete TLS-Version

Sie könnten auf diesen Fehler stoßen:

- Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler trat bei einem Sendevorgang auf.

**Lösung:**

- Stellen Sie sicher, dass Ihr System TLS 1.2 unterstützt.
- Überprüfen Sie Ihre .NET-Version (empfohlen wird 4.6.2 oder höher).

## Fehlende Berechtigungen

Sie erhalten Fehlermeldungen wie:

- Zugriff verweigert. Sie haben nicht ausreichende Berechtigungen.

**Lösung:**

- Ihrem Konto muss die Rolle des Exchange-Administrators oder eine entsprechende Rolle zugewiesen sein.

## Falsche PowerShell-Version

Es können Kompatibilitätsfehler auftreten, wenn Sie eine nicht unterstützte PowerShell-Version verwenden.

**Lösung:**

- Stellen Sie sicher, dass Sie PowerShell 5.1 oder höher verwenden:
- Stellen Sie sicher, dass das EXO V2 Modul mit PowerShell Core (7.x) kompatibel ist.

## Kontosperrung oder deaktiviertes Konto

Sie erhalten Fehlermeldungen wie:

- Ihr Konto wurde gesperrt oder deaktiviert.

**Lösung:**

- Überprüfen Sie den Kontostatus im Microsoft 365 Admin Center.
- Entsperren Sie das Konto oder setzen Sie das Passwort zurück, falls erforderlich.

## Probleme bei der DNS-Auflösung

Sie erhalten folgende Fehlermeldung:

- Der Remote-Name konnte nicht aufgelöst werden.

**Lösung:**

- Überprüfen Sie die DNS-Auflösung für Exchange Online-Endpunkte.
- Verwenden Sie öffentliche DNS-Server (z. B. 8.8.8.8 oder 1.1.1.1), wenn die DNS-Auflösung fehlschlägt.

## Fehler im Zusammenhang mit PowerShell-Modulkonflikten

Modulkonflikte in PowerShell können verschiedene Fehler verursachen, wie zum Beispiel nicht erkannte Cmdlets, überlappende Funktionalitäten oder Versionsinkompatibilitäten.

Es können Fehler wie folgt auftreten:

- Der Begriff ‘<cmdlet>’ wird nicht erkannt.
- Cmdlet ist in mehreren Modulen verfügbar.
- Mehrdeutige Cmdlet-Referenz.

**Lösung:**

- Überprüfen Sie alle derzeit geladenen Module und ihre Versionen mit diesem Cmdlet:

`Get-Module -ListAvailable`

- Wenn ein Cmdlet einen Konflikt verursacht, finden Sie heraus, zu welchem Modul das Cmdlet gehört:

`Get-Command <Cmdlet-Name>`

- Importieren Sie explizit das erforderliche Modul und erzwingen Sie die korrekte Modulversion:

`Import-Module -Name ExchangeOnlineManagement -RequiredVersion 2.x.x -Force`

- Wenn ein veraltetes oder konfliktbehaftetes Modul geladen wird, entfernen Sie es mit:

`Remove-Module -Name <Module-Name>`

- Wenn mehrere Versionen eines Moduls installiert sind, deinstallieren Sie ältere Versionen mit:

`Uninstall-Module -Name ExchangeOnlineManagement -RequiredVersion 1.x.x`

### REST API-Verbindungsfehler

Um Verbindungsfehler der REST API in PowerShell zu behandeln, müssen Sie Probleme im Zusammenhang mit Authentifizierung, Netzwerkkonnektivität oder fehlkonfigurierten Anfragen diagnostizieren und beheben.

| **Ausgabe** | **Lösung** |
| --- | --- |
| **Authentifizierungsprobleme** Fehler: Authentifizierungsfehler oder ungültige Anmeldeinformationen. | Stellen Sie sicher, dass Sie die richtigen Anmeldeinformationen und moderne Authentifizierung (OAuth) verwenden. Überprüfen Sie, ob Ihr Konto über ausreichende Berechtigungen verfügt (zum Beispiel Exchange-Administrator oder eine ähnliche Rolle). Verwenden Sie das Secure Application Model oder eine zertifikatsbasierte Authentifizierung, wenn Sie programmgesteuerten Zugriff benötigen. |
| **Probleme mit Endpoint oder Modul** Fehler: Verbindung zum erforderlichen Endpoint konnte nicht hergestellt werden. | Stellen Sie sicher, dass Sie das korrekte Exchange Online PowerShell V2-Modul (ExchangeOnlineManagement) verwenden. Aktualisieren Sie das Modul auf die neueste Version: Überprüfen Sie die Verbindung zum Exchange Online REST-Endpunkt mit dem folgenden Cmdlet. Es sollte aufgelöst und erreichbar sein:<br>https://outlook.office365.com/powershell-liveid |
| **Netzwerkverbindung** Fehler: Zeitüberschreitungen oder Verbindungsablehnungen. | Die erforderlichen Endpunkte sollten nicht durch Firewalls oder Proxys blockiert werden. Dazu gehören: \*.office365.com \*.microsoftonline.com Testen Sie die InternetverbindungWenn Sie hinter einem Unternehmensproxy sind, stellen Sie sicher, dass der Proxy korrekt für PowerShell konfiguriert ist. |
| **Token-Verfallszeit** Fehler: Ablauf des Authentifizierungstokens während der Sitzung. | Verwenden Sie Connect-ExchangeOnline mit einer beständigen Sitzung, wie unten gezeigt: Connect-ExchangeOnline -UserPrincipalName <Ihre-Admin-E-Mail> -ShowProgress $true Aktualisieren Sie Ihre Sitzung, wenn das Token abläuft, mit dem folgenden Cmdlet: Disconnect-ExchangeOnline Connect-ExchangeOnline |
| **TLS/SSL-Protokollprobleme** Fehler: TLS-Fehler während der Verbindung. | Stellen Sie sicher, dass TLS 1.2 aktiviert ist |
| **Serviceausfälle** Fehler: Dienst nicht verfügbar oder intermittierende Verbindung. | Überprüfen Sie das [Microsoft 365 Service Health Dashboard](https://status.office.com/) auf aktuelle Probleme. |
| **HTTP-Fehler** Diese Fehler treten auf, wenn der Server einen HTTP-Statuscode zurückgibt, der auf einen Fehler hinweist. Häufige Codes: **400 Bad Request:** Die Anfrage ist fehlerhaft (z.B. ungültiges JSON oder Parameter) **401 Unauthorized:** Ungültige oder fehlende Authentifizierungsinformationen **403 Forbidden:** Der Zugriff wird verweigert, obwohl die Authentifizierung korrekt ist **404 Not Found:** Der angeforderte Endpunkt oder die Ressource existiert nicht **500 Internal Server Error:** Ein Problem auf dem API-Server | Stellen Sie sicher, dass der Payload und die Header den Anforderungen der API-Dokumentation entsprechen. Überprüfen Sie API-Schlüssel, Tokens oder andere Anmeldeinformationen. Stellen Sie sicher, dass Ihr Konto Zugriffsrechte auf die angeforderte Ressource hat. Verwenden Sie Logs oder ein Tool wie Postman, um Rohdaten der Anfrage/Antwort zu überprüfen. |
| **SSL/TLS-Fehler** Sichere Verbindungen (HTTPS) können aufgrund von Zertifikatsproblemen fehlschlagen. | Stellen Sie sicher, dass das SSL-Zertifikat des Servers gültig und vertrauenswürdig ist. Für lokale Tests können Sie die SSL-Validierung umgehen, vermeiden Sie dies jedoch in der Produktion. Stellen Sie sicher, dass Ihre Client-Bibliotheken (z. B. Python-Anfragen, Node.js https) auf dem neuesten Stand sind, um moderne TLS-Versionen zu unterstützen. |
| **Zeitüberschreitungsfehler** Diese treten auf, wenn der API-Server nicht innerhalb des erwarteten Zeitrahmens antwortet. | Passen Sie den Timeout-Parameter in Ihrem API-Client an, um die Timeout-Einstellungen zu erhöhen. Vermeiden Sie das Senden von übermäßig großen Datenmengen oder langsamen Anfragen. Kontaktieren Sie den API-Anbieter, wenn Timeouts häufig auftreten, da es Serverlastprobleme geben könnte. |
| **Ratenbegrenzung und Kontingente** APIs haben oft Nutzungslimits, die zu Fehlern führen können, wenn sie überschritten werden. Fehler: HTTP 429 Zu viele Anfragen | Überprüfen Sie die Rate Limits. Beachten Sie die API-Dokumentation für Anfragelimits. Implementieren Sie Drosselung, um die Anfragen zu verteilen und die Rate Limits einzuhalten. Kontaktieren Sie den API-Anbieter, um höhere Kontingente zu beantragen. |

## Wichtige PowerShell-Cmdlets für Exchange Online

Um eine Liste aller verfügbaren Exchange Online PowerShell-Cmdlets zu erhalten, verwenden Sie das folgende Cmdlet:

`Get-command -Module ExchangeOnlineManagement`

Hier ist ein schneller Überblick über wichtige Exchange Online-Cmdlets, einschließlich `Get-Mailbox`, `Get-EXOMailboxStatistics` und anderen, um Postfächer, Benutzer und deren Konfigurationen effektiv zu verwalten.

### Get-Mailbox

Dieses Cmdlet ruft Informationen über Postfächer in Exchange Online ab. Sie können auch spezifische Postfächer anzeigen, wie Benutzerpostfächer, gemeinsam genutzte Postfächer usw.

**Syntax**

`Get-Mailbox [-Identity] <String> [-RecipientTypeDetails <RecipientTypeDetails>] [andere Parameter]`

**Häufige Anwendungsbeispiele**

- Abrufen aller Postfächer:

`Get-Mailbox -ResultSize Unlimited`

- Abrufen aller freigegebenen Postfächer:

`Get-Mailbox -RecipientTypeDetails SharedMailbox`

- Mailboxen nach Domain filtern:

`Get-Mailbox -Filter „EmailAddress -like ‘*@domain.com'“`

### Get-EXOMailboxStatistics

Dieses Cmdlet ruft detaillierte Statistiken über Postfächer in Exchange Online ab, die Informationen wie Postfachgröße, Elementanzahl und letzte Anmeldezeit bereitstellen.

**Syntax**

`Get-EXOMailboxStatistics [-Identity] <String>`

**Häufige Anwendungsbeispiele**

- Mailbox-Statistiken für einen Benutzer abrufen:

`Get-EXOMailboxStatistics -Identity user@domain.com`

- Abrufen der Größen aller Postfächer:

`Get-EXOMailboxStatistics | Select DisplayName, ItemCount, TotalItemSize`

- E-Mail-Postfächer mit einer Größe über einem bestimmten Schwellenwert abrufen:

`Get-EXOMailboxStatistics | Where-Object { $_.TotalItemSize -gt 10GB }`

### Get-MailboxStatistics

Dieses Cmdlet ist ähnlich wie `Get-EXOMailboxStatistics`, funktioniert jedoch mit lokalen Exchange- oder Hybridumgebungen. Es liefert Details zur Größe und Anzahl der Elemente in Postfächern.

**Syntax**

`Get-MailboxStatistics [-Identity] <String>`

**Häufige Anwendungsbeispiele**

- Statistiken für einen bestimmten Benutzer abrufen:

`Get-MailboxStatistics -Identity “user@domain.com”`

- Ermitteln Sie alle Postfachgrößen und die letzten Anmeldezeiten:

`Get-MailboxStatistics | Select DisplayName, LastLogonTime, TotalItemSize`

### Get-MailboxPermission

Dieses Cmdlet ruft die einem Postfach zugewiesenen Berechtigungen ab, einschließlich des Stellvertreterzugriffs.

**Syntax**

`Get-MailboxPermission [-Identity] <String>`

**Häufige Anwendungsbeispiele**

- Alle Berechtigungen für ein Postfach anzeigen:

`Get-MailboxPermission -Identity user@domain.com`

- Filter für nicht standardmäßige Berechtigungen:

`Get-MailboxPermission -Identity “user@domain.com” | Where-Object { $_.IsInherited -eq $false }`

### Set-Mailbox

Dieses Cmdlet ändert Postfacheinstellungen wie Quotenlimits, Weiterleitung und das Aktivieren von Funktionen.

**Syntax**

`Set-Mailbox [-Identity] <String> [-Parameters]`

**Häufige Anwendungsbeispiele**

- Mailbox-Weiterleitung aktivieren:

`Set-Mailbox -Identity “user@domain.com” -ForwardingSMTPAddress “forwardto@domain.com” -DeliverToMailboxAndForward $true`

- Ändern Sie das Postfachkontingent:

`Set-Mailbox -Identity “user@domain.com” -ProhibitSendQuota 50GB`

## New-Mailbox

Dieses Cmdlet erstellt ein neues Postfach für einen Benutzer in Exchange Online. Dieses Cmdlet kann für verschiedene Szenarien verwendet werden, einschließlich der Erstellung von Postfächern für einzelne Benutzer, gemeinsam genutzte Postfächer und Ressourcenpostfächer wie Raum- oder Gerätepostfächer.

**Syntax**

`New-Mailbox -Name <Name> -MicrosoftOnlineServicesID <UserPrincipalName> -Password (ConvertTo-SecureString -String „<Password>“ -AsPlainText -Force)`

**Häufige Anwendungsbeispiele**

- Erstellen Sie ein Benutzerpostfach:

`New-Mailbox -Name “John Doe” -MicrosoftOnlineServicesID “johndoe@domain.com” -Password (ConvertTo-SecureString -String “P@ssw0rd!” -AsPlainText -Force)`

- Erstellen Sie ein gemeinsames Postfach:

`New-Mailbox -Shared -Name „Support Team“ -MicrosoftOnlineServicesID „support@domain.com“`

- Erstellen Sie ein Raum-Postfach:

`New-Mailbox -Room -Name „Konferenzraum 1“ -MicrosoftOnlineServicesID conference1@domain.com`

- Erstellen Sie ein gemeinsames Postfach für ein Team:

`New-Mailbox -Shared -Name „HR Team“ -MicrosoftOnlineServicesID „hr@domain.com“ -Alias „HRTeam“`

### Remove-Mailbox

Dieses Cmdlet löscht ein Postfach aus Exchange Online. Diese Aktion kann auf verschiedene Postfachtypen angewendet werden, einschließlich Benutzerpostfächer, gemeinsam genutzte Postfächer und Ressourcenpostfächer (wie Raum- oder Gerätepostfächer).

**Syntax**

`Remove-Mailbox -Identity <MailboxIdentity>`

**Häufige Anwendungsbeispiele**

- Löschen Sie ein Benutzerpostfach (führt ein Soft-Delete des Postfachs durch, wodurch es innerhalb der Aufbewahrungsfrist wiederherstellbar ist.):

`Remove-Mailbox -Identity “johndoe@domain.com”`

- Dauerhaft ein Postfach löschen (löscht ohne Einhaltung einer Aufbewahrungsfrist):

`Remove-Mailbox -Identity “johndoe@domain.com” -Permanent`

- Löschen Sie nur ein Archivpostfach (das primäre Postfach des angegebenen Benutzers bleibt erhalten):

`Remove-Mailbox -Identity „johndoe@domain.com“ -Archive`

### Get-MailTrafficSummaryReport

Dieses Cmdlet ruft eine Zusammenfassung des Mailverkehrs für Ihre Organisation ab (verfügbar in Microsoft 365-Umgebungen).

**Syntax**

`Get-MailTrafficSummaryReport [-StartDate] <DateTime> [-EndDate] <DateTime>`

**Allgemeines Anwendungsbeispiel**

- E-Mail-Verkehr der letzten 7 Tage abrufen:

```
      $StartDate = (Get-Date).AddDays(-7)

$EndDate = Get-Date

Get-MailTrafficSummaryReport -StartDate $StartDate -EndDate $EndDate

```

### Search-Mailbox

Dieses Cmdlet sucht nach spezifischem Inhalt in einem Postfach oder über mehrere Postfächer hinweg.

**Syntax**

`Search-Mailbox [-Identity] <String> [-SearchQuery <Query>] [-TargetMailbox <String>]`

**Häufige Anwendungsbeispiele**

- Suchen Sie nach E-Mails, die ein bestimmtes Stichwort enthalten:

`Search-Mailbox -Identity “user@domain.com” -SearchQuery “Subject:’Invoice'”`

- Suchergebnisse in ein anderes Postfach kopieren:

`Search-Mailbox -Identity “user@domain.com” -SearchQuery “Keyword” -TargetMailbox “admin@domain.com” -TargetFolder “SearchResults”`

### Get-MailboxAutoReplyConfiguration

Dieses Cmdlet ruft die Einstellungen für automatische Antworten (Abwesenheitsnotiz) eines Postfachs ab.

**Syntax**

`Get-MailboxAutoReplyConfiguration [-Identity] <String>`

**Häufiges Nutzungsszenario**

- Automatische Antwort-Einstellungen für einen bestimmten Benutzer abrufen:

`Get-MailboxAutoReplyConfiguration -Identity “user@domain.com”`

### Get-Recipient

Dieses Cmdlet ruft alle Empfänger (Postfächer, Gruppen, Kontakte usw.) ab.

**Syntax**

`Get-Recipient [-Filter] <String>`

**Häufige Anwendungsbeispiele**

- Erhalten Sie alle Empfänger:

Get-Recipient

- Filtern Sie nach spezifischen Empfängertypen:

`Get-Recipient -RecipientTypeDetails MailUser`

## Cmdlet-Filter

Verwenden Sie Filter, um Ergebnisse anhand spezifischer Attribute einzugrenzen.

**Syntax**

Filter sind in { } eingeschlossen und verwenden eine Struktur aus Eigenschaft, Operator und Wert:

**-Filter {Property -Operator ‘Value’}**

Beispiel

`Get-Mailbox -Filter {DisplayName -like “*Test*”}`

**Gängige Operatoren**

- -eq: Gleich
- -ne: Nicht gleich
- -like: Platzhaltervergleich (\* für null oder mehr Zeichen)
- -notlike: Negiert -like
- -gt: Größer als
- -lt: Weniger als

**Beispiele für die Verwendung von Filtern mit Cmdlets**

- Mailboxen für eine spezifische Domain abrufen

`Get-Mailbox -Filter {EmailAddresses -like ‘*@example.com’}`

- Finden Sie Postfächer, die nach einem bestimmten Datum erstellt wurden

`Get-Mailbox -Filter {WhenCreated -gt ‘2023-01-01’}`

- Mailboxen mit spezifischen Anzeigenamensmustern abrufen

`Get-Mailbox -Filter {DisplayName -like ‘*Test*’}`

- Deaktivierte Postfächer abrufen

`Get-Mailbox -Filter {AccountDisabled -eq $true}`

**Beispiele für die Kombination mehrerer Bedingungen**

Sie können Filter mit logischen Operatoren wie -and und -or kombinieren.

- Benutzer mit spezifischem UPN und Anzeigenamen abrufen

`Get-Mailbox -Filter {UserPrincipalName -like ‘*@example.com’ -and DisplayName -like ‘*John*’}`

- Finden Sie Postfächer, die aktiviert, aber über einer Größenschwelle sind

`Get-Mailbox -Filter {AccountDisabled -eq $false -and ProhibitSendQuota -gt 10GB}`

- **Beispiele für die Filterung mit Pipeline**

Filter können auch mit Where-Object für erweiterte Filterung kombiniert werden.

- Mailboxen nach benutzerdefiniertem Attribut filtern

`Get-Mailbox | Where-Object { $_.CustomAttribute1 -eq ‘Value1’ }`

- Aktive Postfächer, die sich in den letzten 30 Tagen angemeldet haben

`Get-MailboxStatistics | Where-Object { $_.LastLogonTime -gt (Get-Date).AddDays(-30) }`

## Erweiterte Konfigurationen

- Verwenden Sie Select-Object, um die Ausgabe zu verfeinern und nur relevante Eigenschaften anzuzeigen.

`Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress`

- Exportieren Sie die Ergebnisse für Berichte in eine CSV-Datei.

`Get-Mailbox | Export-Csv -Path “Mailboxes.csv” -NoTypeInformation`

- Standardmäßig ist das Limit 1000 Ergebnisse; verwenden Sie -ResultSize Unlimited, um alle Elemente abzurufen.

## Migrieren Sie mithilfe von PowerShell zu Exchange Online

Die Migration zu Exchange Online mit PowerShell umfasst mehrere Schritte, einschließlich der Vorbereitung der lokalen Umgebung, der Konfiguration der Migrationsendpunkte und der Verwaltung des Migrationsprozesses.

### **Voraussetzungen**

Bevor Sie die Migration durchführen, stellen Sie sicher, dass Sie folgendes haben:

- Ein aktives Microsoft 365- oder Office 365-Abonnement mit Exchange Online.
- Administratoranmeldeinformationen für Ihren lokalen Exchange-Server und Exchange Online.
- Das Exchange Online PowerShell V2-Modul (EXO V2) ist installiert.
- Die Einrichtung des Exchange Online (Hybrid)-Konfigurationssatzes erfolgt bei Verwendung der Hybridmigration.

### Hybridmigration (für Organisationen mit sowohl lokalem Exchange als auch Exchange Online)

In einer hybriden Umgebung können Sie Postfächer migrieren, während Sie die Koexistenz zwischen lokalen und cloudbasierten Postfächern aufrechterhalten.

1. Installieren und konfigurieren Sie den Hybrid Configuration Wizard (HCW).

Der Hybrid Configuration Wizard (HCW) ist das Hauptwerkzeug zur Konfiguration einer hybriden Exchange-Umgebung. Er stellt sicher, dass Ihr lokaler Exchange-Server für die hybride Koexistenz mit Exchange Online bereit ist. Sie können ihn aus dem Exchange Admin Center (EAC) herunterladen und ausführen.

- Bereiten Sie den lokalen Exchange-Server vor:
- Führen Sie das Cmdlet `Get-ExchangeServer` aus, um sicherzustellen, dass die richtige Version verwendet wird.
- Führen Sie das Cmdlet `New-RemoteMailbox` aus, um ein Remote-Postfach für zu migrierende Benutzer zu erstellen.
- Starten Sie eine Migration, indem Sie einen Migrationsbatch mit dem Cmdlet New-MigrationBatch erstellen:

`New-MigrationBatch -Name “MigrationBatch” -SourceEndpoint <OnPremisesExchangeEndpoint> -TargetEndpoint <ExchangeOnlineEndpoint> -MailboxList <MailboxesToMigrate> -AutoStart -AutoComplete`

Platzhalter ersetzen:

- `<OnPremisesExchangeEndpoint>` – Der Endpunkt für Ihren lokalen Exchange-Server
- `<ExchangeOnlineEndpoint>` – Der Endpunkt für Exchange Online
- `<MailboxesToMigrate>` – Die Liste der zu migrierenden Postfächer
- Um den Migrationsprozess zu überwachen:

`Get-MigrationBatch | Get-MigrationUser`

- Sobald die Migration abgeschlossen ist, können Sie sie abschließen mit:

`Set-MigrationBatch -Identity „MigrationBatch“ -Complete`

### Cutover-Migration (für kleine Umgebungen, typischerweise weniger als 150 Postfächer)

Bei der Cutover-Migration werden alle Postfächer in einem einzigen Batch von Exchange vor Ort zu Exchange Online migriert.

1. Verwenden Sie das Cmdlet New-MigrationEndpoint, um einen Endpunkt für den lokalen Exchange-Server zu erstellen:

`New-MigrationEndpoint -Name “CutoverEndpoint” -ExchangeServer “<OnPremisesExchangeServer>” -Type “ExchangeRemoteMove”`

- Verwenden Sie das Cmdlet New-MigrationBatch, um einen Migrationsbatch für alle Postfächer zu erstellen:

`New-MigrationBatch -Name „CutoverMigrationBatch“ -SourceEndpoint „CutoverEndpoint“ -MailboxList „user1@example.com“, „user2@example.com“ -TargetDeliveryDomain „<ExchangeOnlineDomain>“ -AutoStart -AutoComplete`

- Verwenden Sie das Cmdlet Get-MigrationBatch, um die Migration zu überwachen:

`Get-MigrationBatch „CutoverMigrationBatch“ | Get-MigrationUser`

- Nach Abschluss der Migration können Sie diese mit dem Set-MigrationBatch-Cmdlet abschließen:

`Set-MigrationBatch -Identity „CutoverMigrationBatch“ -Complete`

### Staged Migration (für mittelgroße Umgebungen)

Bei der stufenweisen Migration werden Postfächer in Stufen (typischerweise in Chargen) von Exchange vor Ort zu Exchange Online migriert.

1. Erstellen Sie einen Endpunkt für das lokale Exchange:

`New-MigrationEndpoint -Name “StagedEndpoint” -ExchangeServer “<OnPremisesExchangeServer>” -Type “ExchangeRemoteMove”`

- Um Postfächer in Phasen zu migrieren, erstellen Sie eine Migrationscharge mit dem Cmdlet New-MigrationBatch:

`New-MigrationBatch -Name “StagedMigrationBatch” -SourceEndpoint “StagedEndpoint” -MailboxList “user1@example.com”, “user2@example.com” -TargetDeliveryDomain “<ExchangeOnlineDomain>” -AutoStart -AutoComplete`

- Überwachen Sie die Migration mit:

`Get-MigrationBatch „StagedMigrationBatch“ | Get-MigrationUser`

- Sobald die Migration abgeschlossen ist, schließen Sie sie ab:

`Set-MigrationBatch -Identity „StagedMigrationBatch“ -Complete`

## Best Practices für die Sicherheit

### Stellen Sie sichere Verbindungen sicher

**Verwenden Sie sichere Authentifizierungsmethoden**

Nutzen Sie moderne Authentifizierung mit OAuth anstelle von Basisauthentifizierung. Sie müssen auch die Multi-Faktor-Authentifizierung (MFA) für alle Benutzerkonten aktivieren, die auf Exchange Online zugreifen.

**Verwenden Sie Conditional Access Policies**

Konfigurieren Sie den bedingten Zugriff in Microsoft Entra, um Einschränkungen wie Standort, Gerätekonformität und Benutzerrisikostufen durchzusetzen. Stellen Sie sicher, dass Sie den Zugriff von unbekannten oder riskanten Standorten blockieren oder einschränken.

**Beschränken Sie den PowerShell-Zugriff**

Verwenden Sie Role-Based Access Control (RBAC), um den PowerShell-Zugriff nur auf die Benutzer zu beschränken, die ihn benötigen. Deaktivieren Sie als weitere Vorsichtsmaßnahme Remote-PowerShell für Konten, die keinen administrativen Zugang benötigen.

**TLS-Verschlüsselung erzwingen**

Stellen Sie sicher, dass alle Verbindungen zu Exchange Online TLS 1.2 oder höher verwenden. Sie sollten auch regelmäßig Systeme überprüfen, um die Einhaltung moderner Verschlüsselungsprotokolle zu bestätigen.

**Verwenden Sie Privileged Access Workstations (PAWs)**

Beschränken Sie administrative Aufgaben auf sichere, isolierte Arbeitsstationen, um die Gefährdung durch Malware oder Angriffe zu verringern.

**Verwenden Sie Secure Application Tokens**

Ersetzen Sie für unbeaufsichtigte Skripte Benutzeranmeldeinformationen durch sichere App-Registrierungen in Microsoft Entra ID.

### Verwalten Sie Benutzerberechtigungen und Zugriffskontrolle in Exchange Online

**Rollenbasierte Zugriffskontrolle (RBAC) implementieren**

Weisen Sie Benutzern vordefinierte Rollen auf Basis des Prinzips der geringsten Berechtigung zu. Weisen Sie umfassende Rollen wie Global Administrator nur zu, wenn es absolut notwendig ist.

**Überwachen und überprüfen Sie Berechtigungen regelmäßig**

Überprüfen Sie regelmäßig Berechtigungen und entfernen Sie unnötigen Zugriff. Als routinemäßige Praxis verwenden Sie Berichte aus dem Microsoft 365 Security & Compliance Center, um Zugriffsprotokolle zu überprüfen.

**Trennung administrativer Rollen**

Verwenden Sie separate Konten für administrative Aufgaben und alltägliche Benutzeraktivitäten. Noch besser ist es, unterschiedliche Rollen für verschiedene administrative Funktionen wie Mailbox-Verwaltung und Compliance-Management zuzuweisen.

**Verwenden Sie Just-in-Time (JIT) Access**

Implementieren Sie [JIT access](https://blog.netwrix.com/2021/09/08/just-in-time-access-and-administration/)-Richtlinien mit Microsoft Entra ID Privileged Identity Management (PIM), um temporäre erweiterte Berechtigungen zu gewähren.

**Mailbox-Überwachung aktivieren**

Aktivieren Sie die Überwachung für alle Postfächer, um Änderungen zu verfolgen und unbefugten Zugriff zu erkennen.

### Empfehlungen für den sicheren Einsatz von PowerShell in Produktionsumgebungen

**Sichern Sie Ihre Skripte**

Vermeiden Sie das Hardcoden von Anmeldeinformationen; verwenden Sie sichere Speichermechanismen wie Azure Key Vault oder Windows Credential Manager. Nutzen Sie auch parametrisierte Skripte und sichere Eingabeverarbeitung, um Injektionsschwachstellen zu vermeiden.

**Überwachen und protokollieren Sie PowerShell-Aktivitäten**

Aktivieren Sie das PowerShell-Logging (Modul-, Skriptblock- und Transkriptprotokolle). Sie können das Logging auch mit einem [SIEM](https://blog.netwrix.com/2021/06/03/siem-security-information-and-event-management/)-System für Echtzeitüberwachung integrieren.

**Verwenden Sie signierte Skripte**

Signieren Sie PowerShell-Skripte mit einem vertrauenswürdigen Zertifikat, um die Integrität zu gewährleisten. Um dies zu unterstützen, setzen Sie die PowerShell-Ausführungsrichtlinie auf AllSigned, da sie nur signierte Skripte zulässt.

**Führen Sie PowerShell mit Least Privilege aus**

Vermeiden Sie unnötigerweise die Verwendung von Konten mit erhöhten Berechtigungen. Verwenden Sie stattdessen granulare Berechtigungen für spezifische Aufgaben.

**Halten Sie PowerShell und Module aktuell**

Aktualisieren Sie regelmäßig PowerShell auf die neueste Version, um Sicherheitslücken zu beheben. Nicht nur das, aktualisieren Sie auch das Exchange Online Management-Modul, um die neuesten Funktionen und Korrekturen zu nutzen.

**Netzwerkzugriff beschränken**

Beschränken Sie den Zugriff auf Exchange Online-Endpunkte auf bekannte IP-Adressen mithilfe von Firewall-Regeln oder Microsoft Entra ID Named Locations.

**Verschlüsseln Sie sensible Daten**

Verwenden Sie SecureString oder andere Verschlüsselungsmethoden, um sensible Daten sicher zu speichern und zu übertragen.

## Netwrix Auditor for Exchange

Get a demo
Get a demo

## Fazit

PowerShell für Exchange Online bietet leistungsfähige Möglichkeiten zur Verwaltung und Automatisierung administrativer Aufgaben, die es Administratoren ermöglichen, komplexe Operationen wie Massenbenutzeraktualisierungen, Berichterstattung und Konfigurationsänderungen zu bewältigen. Durch die Einführung moderner Authentifizierung, einschließlich OAuth und MFA, können Organisationen den Zugriff auf Exchange Online sichern. Die Automatisierung durch PowerShell minimiert manuellen Aufwand, reduziert menschliche Fehler und verbessert die gesamte betriebliche Konsistenz und Skalierbarkeit.

Für erweiterte Konfigurationen und tiefergehendes Lernen besuchen Sie die offizielle Dokumentation von Microsoft, die PowerShell-Trainingsmodule und die Community-Foren.

**Microsoft-Dokumentation**

- [Exchange Online PowerShell-Dokumentation](https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell?view=exchange-ps) – Umfassende Anleitungen zum Verbinden, Verwalten von Postfächern, Compliance-Aufgaben und mehr.
- [Microsoft Learn](https://learn.microsoft.com/en-us/) – Kostenlose Trainingsmodule zu Exchange Online, PowerShell-Skripting und Sicherheitsbest Practices.

## FAQs

### Wie verbindet man sich Schritt für Schritt mit Exchange Online PowerShell?

Die Verbindung zu Exchange Online PowerShell ist unkompliziert, wenn Sie der richtigen Reihenfolge folgen. Zuerst stellen Sie sicher, dass das Exchange Online PowerShell-Modul installiert ist, indem Sie `Install-Module -Name ExchangeOnlineManagement` in einer PowerShell-Sitzung mit erhöhten Rechten ausführen. Nach der Installation verwenden Sie `Connect-ExchangeOnline -UserPrincipalName your-admin@domain.com` um die Verbindung herzustellen. Sie werden zur Mehrfaktorauthentifizierung aufgefordert, falls diese für Ihr Konto aktiviert ist. Nach erfolgreicher Authentifizierung überprüfen Sie Ihre Verbindung mit `Get-Mailbox -ResultSize 1`, um die grundlegende Funktionalität zu testen. Denken Sie immer daran, die Verbindung mit Disconnect-ExchangeOnline zu trennen, wenn Sie fertig sind, um die Sicherheitsbest Practices zu wahren.

### Zugriff auf Exchange Online PowerShell verweigert – wie beheben?

Zugriffsfehler resultieren typischerweise aus unzureichenden Berechtigungen oder Authentifizierungsproblemen. Beginnen Sie damit, zu überprüfen, ob Ihr Konto die notwendigen Exchange Online-Administratorenrollen hat – mindestens benötigen Sie die Berechtigungen eines Exchange-Administrators oder eines Globalen Administrators. Wenn die Rollen korrekt sind, überprüfen Sie, ob Ihre Organisation Bedingte Zugriffsrichtlinien verwendet, die möglicherweise PowerShell-Verbindungen blockieren. Löschen Sie alle gespeicherten Anmeldeinformationen mit `Remove-StoredCredential` und versuchen Sie die Verbindung erneut herzustellen. Bei anhaltenden Problemen stellen Sie sicher, dass Sie die neueste Version des ExchangeOnlineManagement-Moduls verwenden, da ältere Versionen Kompatibilitätsprobleme mit modernen Authentifizierungsanforderungen haben können.

### Kann keine Verbindung zu Exchange Online PowerShell herstellen – was sind gängige Lösungen?

Verbindungsfehler fallen in der Regel in drei Kategorien: Authentifizierungsprobleme, Netzwerkprobleme oder Modulkonflikte.

Überprüfen Sie zunächst, ob Sie die richtige Syntax verwenden: `Connect-ExchangeOnline -UserPrincipalName` anstelle veralteter Verbindungs­methoden. Prüfen Sie Ihre Netzwerkverbindung und Firewall-Einstellungen – Exchange Online erfordert den Zugriff auf bestimmte Microsoft-Endpunkte. Wenn Sie sich hinter einem Unternehmensproxy befinden, konfigurieren Sie PowerShell so, dass Ihre Proxy-Einstellungen verwendet werden. Modulkonflikte können auftreten, wenn sowohl die alten MSOnline-Module als auch das neue ExchangeOnlineManagement-Modul gleichzeitig installiert sind. Deinstallieren Sie ältere Module und verwenden Sie ausschließlich das ExchangeOnlineManagement-Modul, um eine saubere und stabile Umgebung sicherzustellen.

### Wie installiert man das Exchange Online PowerShell-Modul?

Die Installation des Exchange Online PowerShell-Moduls erfordert nur einen Befehl, aber die richtigen Voraussetzungen sind entscheidend.

Führen Sie PowerShell als Administrator aus und geben Sie folgenden Befehl ein: `Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber`. Der Parameter -Force stellt sicher, dass Sie die neueste Version erhalten, während -AllowClobber eventuelle Konflikte mit vorhandenen Cmdlets behebt. Wenn Sie Fehler bei der Ausführungsrichtlinie erhalten, setzen Sie diese vorübergehend mit: `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`. In Umgebungen, in denen Sie Ausführungsrichtlinien nicht ändern können, laden Sie das Modul manuell aus der PowerShell Gallery herunter und installieren es offline. Überprüfen Sie die erfolgreiche Installation mit: `Get-Module ExchangeOnlineManagement -ListAvailable` um zu bestätigen, dass das Modul korrekt installiert wurde.

### Wie verbindet man sich mit Exchange Online PowerShell mit MFA??

Die **Mehrfaktor-Authentifizierung (MFA)** mit **Exchange Online PowerShell** ist einfach, wenn sie richtig konfiguriert ist.Das moderne Cmdlet **Connect-ExchangeOnline** verarbeitet **MFA** automatisch – verwenden Sie einfach: `Connect-ExchangeOnline -UserPrincipalName your-admin@domain.com` Daraufhin werden Sie in einem **Browserfenster** aufgefordert, die **MFA-Verifizierung** abzuschließen. Für **unbeaufsichtigte Skripte oder Automatisierung** konfigurieren Sie eine **zertifikatsbasierte Authentifizierung** oder verwenden Sie einen **Dienstprinzipal** mit: `Connect-ExchangeOnline -CertificateThumbprint`oder` Connect-ExchangeOnline -AppId`. Vermeiden Sie die Verwendung von **Basic Authentication** oder **App-Passwörtern**, da Microsoft diese **veralteten Methoden** schrittweise abschafft.Die **moderne Authentifizierung** ist nicht nur **sicherer**, sondern auch **zuverlässiger** und bietet eine **bessere Integration** mit den **Identitätsverwaltungsrichtlinien** Ihrer Organisation.

Teilen auf

[Erfahren Sie mehr\\
**Über den Autor**\\
\\
\\
\\
**Jonathan Blackwell**  **Leiter der Softwareentwicklung**\\
\\
Seit 2012 hat Jonathan Blackwell, ein Ingenieur und Innovator, eine führende Rolle in der Ingenieurskunst übernommen, die Netwrix GroupID an die Spitze des Gruppen- und Benutzermanagements für Active Directory und Azure AD Umgebungen gebracht hat. Seine Erfahrung in Entwicklung, Marketing und Vertrieb ermöglicht es Jonathan, den Identity-Markt und die Denkweise der Käufer vollständig zu verstehen.](/content/de/author/jonathan-blackwell/ "Jonathan Blackwell"/index.html)

## Erfahren Sie mehr zu diesem Thema

[Die 10 besten ITDR-Tools für identitätszentrierte Sicherheit im Jahr 2026](/content/de/resources/blog/itdr-tools/ "Die 10 besten ITDR-Tools für identitätszentrierte Sicherheit im Jahr 2026"/index.html) [Die 7 besten Omada-Alternativen für IAM-Teams im Mittelstandsmarkt im Jahr 2026](/content/de/resources/blog/omada-alternatives/ "Die 7 besten Omada-Alternativen für IAM-Teams im Mittelstandsmarkt im Jahr 2026"/index.html) [Nicht-menschliche Identitäten (NHI) erklärt und wie man sie sichert](/content/de/resources/blog/non-human-identities/ "Nicht-menschliche Identitäten (NHI/index.html) erklärt und wie man sie sichert") [12 Kritische Sicherheitsrisiken von Shadow AI, die Ihre Organisation 2026 Überwachen Muss](/content/de/resources/blog/shadow-ai-security-risks/ "12 Kritische Sicherheitsrisiken von Shadow AI, die Ihre Organisation 2026 Überwachen Muss"/index.html) [Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz](/content/de/resources/blog/data-privacy-laws-by-state-the-u-s-approach-to-privacy-protection/ "Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz"/index.html)

## Neueste blogbeiträge

[NetSuite AI Connector: The governance layer your roles and permissions aren’t ready for](/content/de/resources/blog/netsuite-ai-connector-security-governance/ "NetSuite AI Connector: The governance layer your roles and permissions aren’t ready for"/index.html) [OpenAI und die Umwelt, die KI erbt](/content/de/resources/blog/openai-and-the-environment-ai-inherits/ "OpenAI und die Umwelt, die KI erbt"/index.html) [Automatisierung der Entra ID-Mandantenzerstörung mit KI](/content/de/resources/blog/automating-entra-id-tenant-destruction-with-ai/ "Automatisierung der Entra ID-Mandantenzerstörung mit KI"/index.html) [8 Microsoft Purview-Alternativen für plattformübergreifende Datensicherheit](/content/de/resources/blog/microsoft-purview-alternatives/ "8 Microsoft Purview-Alternativen für plattformübergreifende Datensicherheit"/index.html) [10 CrowdStrike-Alternativen zum Identitätsschutz für Sicherheitsteams im mittleren Marktsegment im Jahr 2026](/content/de/resources/blog/crowdstrike-identity-alternatives/ "10 CrowdStrike-Alternativen zum Identitätsschutz für Sicherheitsteams im mittleren Marktsegment im Jahr 2026"/index.html) [Top 10 PII-Erkennungstools für 2026](/content/de/resources/blog/pii-discovery-tools/ "Top 10 PII-Erkennungstools für 2026"/index.html) [Ihr Browser ist kein Tresor. Bitte hören Sie auf, ihm die Schlüssel zu geben.](/content/de/resources/blog/browser-password-managers-enterprise-security-risks/ "Ihr Browser ist kein Tresor. Bitte hören Sie auf, ihm die Schlüssel zu geben."/index.html) [CIS-Benchmark-Tool: Was es ist, wie es funktioniert und warum kontinuierliche Überwachung wichtig ist](/content/de/resources/blog/cis-benchmark-tool/ "CIS-Benchmark-Tool: Was es ist, wie es funktioniert und warum kontinuierliche Überwachung wichtig ist"/index.html) [Sie wünschen sich, passwortlos zu sein. Aber das sind Sie nicht.](/content/de/resources/blog/world-password-day-passwordless/ "Sie wünschen sich, passwortlos zu sein. Aber das sind Sie nicht."/index.html) [Mein Lieblingstag des Jahres: Passworttag](/content/de/resources/blog/my-favorite-day-of-the-year-password-day/ "Mein Lieblingstag des Jahres: Passworttag"/index.html)

## Unsere top-artikel

[Essentielle PowerShell-Befehle: Ein Spickzettel für Anfänger](/content/de/resources/blog/powershell-commands-cheat-sheet/ "Essentielle PowerShell-Befehle: Ein Spickzettel für Anfänger"/index.html) [Download and Install PowerShell 7](/content/de/resources/blog/powershell-download-install-guide/ "Download and Install PowerShell 7"/index.html) [Ein Überblick über den MGM Cyberangriff](/content/de/resources/blog/mgm-cyber-attack/ "Ein Überblick über den MGM Cyberangriff"/index.html) [PowerShell-Umgebungsvariablen](/content/de/resources/blog/powershell-environment-variables/ "PowerShell-Umgebungsvariablen"/index.html) [Automatisierung der Entra ID-Mandantenzerstörung mit KI](/content/de/resources/blog/automating-entra-id-tenant-destruction-with-ai/ "Automatisierung der Entra ID-Mandantenzerstörung mit KI"/index.html) [Wie man ein PowerShell-Skript über den Aufgabenplaner ausführt](/content/de/resources/blog/how-to-automate-powershell-scripts-with-task-scheduler/ "Wie man ein PowerShell-Skript über den Aufgabenplaner ausführt"/index.html) [Gängige Arten von Netzwerkgeräten und ihre Funktionen](/content/de/resources/blog/network-devices-explained/ "Gängige Arten von Netzwerkgeräten und ihre Funktionen"/index.html) [So führen Sie ein PowerShell-Skript aus](/content/de/resources/blog/how-to-run-powershell-script/ "So führen Sie ein PowerShell-Skript aus"/index.html) [Wie installiert & verwendet man Active Directory Users and Computers (ADUC)?](/content/de/resources/blog/how-to-install-and-use-active-directory-users-and-computers/ "Wie installiert & verwendet man Active Directory Users and Computers (ADUC/index.html)?") [Was ist SPN und welche Rolle spielt es in Active Directory und Sicherheit](/content/de/resources/blog/what-is-spn/ "Was ist SPN und welche Rolle spielt es in Active Directory und Sicherheit"/index.html)

Nach oben

Qualified
