Microsoft 365
Microsoft 365 – Cloud, Zusammenarbeit & Sicherheit
Willkommen im Microsoft 365 Wissensbereich von MY-IT Cloudservice!
Microsoft 365 ist weit mehr als nur Word, Excel und Outlook. Es ist eine moderne Cloud-Plattform, die Kommunikation, Zusammenarbeit, Produktivität und IT-Sicherheit miteinander verbindet – egal ob im Büro, im Homeoffice oder unterwegs.
In diesem Wissensbereich findest du hilfreiche Anleitungen, praktische Tipps und technische Dokumentationen rund um Microsoft 365.
Was erwartet dich?
- Microsoft 365 Grundlagen – Einstieg, Einrichtung, Lizenzen und Benutzerverwaltung.
- Microsoft Teams & Outlook – Kommunikation, E-Mails, Kalender und Zusammenarbeit.
- OneDrive & SharePoint – Dateien sicher speichern, teilen und gemeinsam bearbeiten.
- Microsoft Entra ID – Identitäten, Benutzerkonten, Gruppen und Zugriffsrechte verwalten.
- Microsoft Intune – Geräte zentral verwalten, konfigurieren und absichern.
- Exchange Online – Postfächer, E-Mail-Konfiguration und Administration.
- IT-Sicherheit & Datenschutz – Multi-Faktor-Authentifizierung (MFA), Berechtigungen und Sicherheitsrichtlinien.
- Fehlerbehebung & Administration – Lösungen für häufige Probleme und hilfreiche Tipps aus der IT-Praxis.
Unser Ziel
Technologie verständlich machen. Ob Einsteiger, fortgeschrittener Anwender oder IT-Administrator – hier findest du Wissen, das dich im Arbeitsalltag unterstützt.
Die Dokumentationen werden regelmäßig erweitert und orientieren sich an praktischen Erfahrungen aus der IT-Administration.
MY-IT Cloudservice – IT, die zu Ihnen passt.
Exchange Online
Verteilergruppen per PowerShell in Exchange Online importieren
Mit dem PowerShell-Skript Import-Verteilergruppen.ps1 können mehrere E-Mail-Verteilergruppen automatisiert in Microsoft 365 beziehungsweise Exchange Online angelegt und mit Mitgliedern befüllt werden.
Das Skript verwendet eine CSV-Datei als Datenquelle. Es überprüft vor dem Anlegen einer Verteilergruppe, ob diese bereits vorhanden ist, und verhindert doppelte Mitgliedschaften.
Funktionen
-
Automatisches Erstellen von Verteilergruppen
-
Zuweisen der primären E-Mail-Adresse
-
Hinzufügen mehrerer Mitglieder pro Verteilergruppe
-
Überprüfung bereits vorhandener Gruppen
-
Vermeidung doppelter Mitgliedschaften
-
Ausgabe von Statusmeldungen und Fehlern in PowerShell
Hinweis: Das Skript erstellt klassische Exchange-Verteilergruppen, keine Microsoft-365-Gruppen oder dynamischen Verteilergruppen.
2. Voraussetzungen
Für die Ausführung werden folgende Komponenten benötigt:
-
Windows PowerShell 5.1 oder PowerShell 7
-
Internetverbindung zu Microsoft 365
-
Installiertes ExchangeOnlineManagement-Modul
-
Ein Microsoft-365-Konto mit ausreichenden Exchange-Berechtigungen zur Verwaltung von Verteilergruppen
-
CSV-Datei mit den zu importierenden Gruppen und Mitgliedern
-
PowerShell-Skript
Import-Verteilergruppen.ps1
Die Benutzer beziehungsweise Empfänger, die als Mitglieder hinzugefügt werden sollen, müssen bereits in Exchange Online bekannt sein.
3. Exchange Online PowerShell vorbereiten
Schritt 1: PowerShell starten
Öffnen Sie PowerShell auf dem Administrationscomputer.
Schritt 2: ExchangeOnlineManagement installieren
Falls das Modul noch nicht installiert ist:
Install-Module ExchangeOnlineManagement -Scope CurrentUser
Schritt 3: Verbindung zu Exchange Online herstellen
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName admin@firma.de
Ersetzen Sie admin@firma.de durch das entsprechende Administratorkonto.
Die Anmeldung erfolgt über die Microsoft-Anmeldeseite, gegebenenfalls einschließlich Multifaktor-Authentifizierung (MFA).
4. CSV-Datei vorbereiten
Das Skript erwartet eine Datei mit dem Namen:
verteilergruppen.csv
Diese muss folgende Spalten enthalten:
| Spaltenname | Beschreibung |
|---|---|
| GroupName | Name der Verteilergruppe |
| PrimarySmtpAddress | Primäre E-Mail-Adresse der Gruppe |
| Member | E-Mail-Adresse beziehungsweise Empfängerkennung des Mitglieds |
Beispiel einer CSV-Datei
GroupName,PrimarySmtpAddress,Member
IT-Team,it-team@firma.de,max@firma.de
IT-Team,it-team@firma.de,lisa@firma.de
Vertrieb,vertrieb@firma.de,tom@firma.de
Vertrieb,vertrieb@firma.de,anna@firma.de
Support,support@firma.de,service@firma.de
Im Beispiel werden drei Verteilergruppen angelegt:
-
IT-Team mit zwei Mitgliedern
-
Vertrieb mit zwei Mitgliedern
-
Support mit einem Mitglied
Wichtig: Die Spaltennamen müssen exakt mit den Angaben im Beispiel übereinstimmen.
Das Skript verwendet standardmäßig ein Komma als CSV-Trennzeichen. Falls die Datei aus deutschem Excel exportiert wurde und Semikolons verwendet, muss die Importzeile angepasst werden:
$data = Import-Csv ".\verteilergruppen.csv" -Delimiter ";"
Verwenden Sie für Gruppennamen möglichst einfache, eindeutige Bezeichnungen ohne problematische Sonderzeichen, da das Skript den Gruppennamen gleichzeitig als Exchange-Alias verwendet.
5. Dateien vorbereiten
Legen Sie auf dem Administrationscomputer beispielsweise folgenden Ordner an:
C:\Scripts\Verteilergruppen
Speichern Sie beide Dateien dort:
C:\Scripts\Verteilergruppen\
│
├── Import-Verteilergruppen.ps1
└── verteilergruppen.csv
Das Skript liest die CSV-Datei aus dem aktuellen PowerShell-Arbeitsverzeichnis. Deshalb sollte PowerShell vor der Ausführung in diesen Ordner wechseln.
6. Skript ausführen
Schritt 1: Zum Verzeichnis wechseln
cd C:\Scripts\Verteilergruppen
Schritt 2: Verbindung überprüfen
Get-DistributionGroup -ResultSize 5
Wenn vorhandene Verteilergruppen angezeigt werden, funktioniert die Exchange-Online-Verbindung grundsätzlich.
Schritt 3: CSV-Datei überprüfen
Import-Csv ".\verteilergruppen.csv" |
Format-Table
Kontrollieren Sie, ob Gruppenname, Gruppenadresse und Mitglieder korrekt eingelesen werden.
Schritt 4: Import starten
.\Import-Verteilergruppen.ps1
Falls die lokale Ausführungsrichtlinie das Skript blockiert, können Sie für die aktuelle PowerShell-Sitzung bei Bedarf folgende Einstellung verwenden, sofern Ihre Organisationsrichtlinien dies erlauben:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Danach das Skript erneut starten.
7. Was passiert während des Imports?
Das Skript verarbeitet die CSV-Datei gruppenweise.
Schritt 1 – Gruppe überprüfen
Zunächst wird geprüft, ob eine Verteilergruppe mit der angegebenen primären E-Mail-Adresse bereits existiert.
Schritt 2 – Gruppe anlegen
Existiert die Gruppe nicht, wird sie angelegt. Bereits vorhandene Gruppen werden nicht erneut erstellt.
Schritt 3 – Mitglieder überprüfen
Für jedes Mitglied wird geprüft, ob es bereits in der entsprechenden Gruppe vorhanden ist.
Schritt 4 – Mitglieder hinzufügen
Fehlende Mitglieder werden zur Verteilergruppe hinzugefügt.
Schritt 5 – Status ausgeben
Während des Imports erscheinen farbige Statusmeldungen.
| Farbe | Bedeutung |
|---|---|
| Grün | Verteilergruppe erfolgreich erstellt |
| Gelb | Gruppe oder Mitglied bereits vorhanden |
| Cyan | Mitglied erfolgreich hinzugefügt |
| Warnmeldung | Fehler beim Hinzufügen eines Mitglieds |
Beispielausgabe
Gruppe erstellt: it-team@firma.de
Mitglied hinzugefügt: max@firma.de
Mitglied hinzugefügt: lisa@firma.de
Gruppe existiert bereits: vertrieb@firma.de
Mitglied bereits vorhanden: tom@firma.de
Mitglied hinzugefügt: anna@firma.de
Import abgeschlossen.
Die Abschlussmeldung bestätigt das Ende der Skriptausführung, garantiert jedoch nicht, dass alle Gruppen und Mitgliedschaften erfolgreich verarbeitet wurden. Eventuelle Fehlermeldungen müssen separat geprüft werden.
8. Importergebnis kontrollieren
Alle Verteilergruppen anzeigen
Get-DistributionGroup |
Select-Object DisplayName, PrimarySmtpAddress
Mitglieder einer bestimmten Verteilergruppe anzeigen
Get-DistributionGroupMember -Identity "it-team@firma.de"
Gruppe gezielt überprüfen
Get-DistributionGroup -Identity "it-team@firma.de" |
Format-List Name, Alias, PrimarySmtpAddress
Alternativ kann die Prüfung im Exchange Admin Center erfolgen:
https://admin.exchange.microsoft.com
9. Häufige Fehler und Lösungen
Fehler: Get-DistributionGroup wird nicht erkannt
Ursache: Keine aktive Exchange-Online-Verbindung oder fehlendes PowerShell-Modul.
Lösung:
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline
Fehler: Die CSV-Datei wird nicht gefunden
Ursache: Die Datei verteilergruppen.csv liegt nicht im aktuellen Arbeitsverzeichnis.
Lösung:
Get-Location
Get-ChildItem *.csv
Prüfen Sie Dateinamen und Speicherort.
Fehler: Mitglied kann nicht hinzugefügt werden
Mögliche Ursachen:
-
Der Empfänger existiert nicht.
-
Die E-Mail-Adresse ist falsch.
-
Es fehlen Berechtigungen.
-
Die angegebene Gruppe kann nicht geändert werden.
Prüfen Sie den Empfänger:
Get-Recipient -Identity "max@firma.de"
Fehler: Verteilergruppe kann nicht erstellt werden
Mögliche Ursachen:
-
Der Gruppenname beziehungsweise Alias ist ungültig.
-
Die E-Mail-Adresse wird bereits verwendet.
-
Der Administrator besitzt keine ausreichenden Berechtigungen.
-
Die Gruppe wird bereits anderweitig verwaltet.
Prüfen Sie vor einem erneuten Import die Fehlermeldung und den Empfängerbestand.
10. Wichtige Hinweise
-
Das Skript löscht keine vorhandenen Verteilergruppen.
-
Bestehende Mitglieder werden nicht automatisch entfernt.
-
In der CSV aufgeführte Mitglieder werden ergänzt.
-
Bereits vorhandene Mitgliedschaften werden übersprungen.
-
Bei wiederholter Ausführung werden vorhandene Einträge grundsätzlich nicht doppelt angelegt.
-
Das Skript gleicht nicht den vollständigen Mitgliederbestand mit der CSV-Datei ab.
-
Fehler beim Erstellen einer Verteilergruppe können die Ausführung unterbrechen.
Es empfiehlt sich, vor einem größeren Import zunächst zwei bis drei Testgruppen anzulegen und die Ergebnisse zu kontrollieren.
11. Verbindung beenden
Nach Abschluss aller Arbeiten kann die Exchange-Online-Sitzung beendet werden:
Disconnect-ExchangeOnline -Confirm:$false
Dokumentation: Import von Exchange-Online-Verteilergruppen
Skript: Import-Verteilergruppen.ps1
Plattform: Microsoft 365 / Exchange Online
Verfahren: CSV-basierter PowerShell-Import
Das komplette Script findet man hier
# CSV-Datei einlesen
$data = Import-Csv ".\verteilergruppen.csv"
foreach ($group in ($data | Group-Object GroupName)) {
$firstRow = $group.Group[0]
$groupAddress = $firstRow.PrimarySmtpAddress
# Gruppe prüfen
$existingGroup = Get-DistributionGroup `
-Identity $groupAddress `
-ErrorAction SilentlyContinue
# Gruppe erstellen, falls sie nicht existiert
if (-not $existingGroup) {
New-DistributionGroup `
-Name $firstRow.GroupName `
-Alias $firstRow.GroupName `
-PrimarySmtpAddress $groupAddress `
-Type Distribution `
-ErrorAction Stop
Write-Host "Gruppe erstellt: $groupAddress" -ForegroundColor Green
}
else {
Write-Host "Gruppe existiert bereits: $groupAddress" -ForegroundColor Yellow
}
# Mitglieder hinzufügen
foreach ($member in $group.Group) {
try {
$alreadyMember = Get-DistributionGroupMember `
-Identity $groupAddress `
-ResultSize Unlimited |
Where-Object {
$_.PrimarySmtpAddress -eq $member.Member
}
if (-not $alreadyMember) {
Add-DistributionGroupMember `
-Identity $groupAddress `
-Member $member.Member `
-ErrorAction Stop
Write-Host "Mitglied hinzugefügt: $($member.Member)" `
-ForegroundColor Cyan
}
else {
Write-Host "Mitglied bereits vorhanden: $($member.Member)" `
-ForegroundColor Yellow
}
}
catch {
Write-Warning "Fehler bei $($member.Member): $($_.Exception.Message)"
}
}
}
Write-Host "Import abgeschlossen." -ForegroundColor Green