Die Organisation entschied, dass alle Postfächer einen bestimmten Ordner in ihrem Outlook haben sollten. Wenn sie die Benutzer dazu auffordern, geht dies in den meisten Fällen schief, da sie den Ordner als Unterordner oder mit einem falschen Namen erstellen. Um Konsistenz und Genauigkeit zu gewährleisten, besteht der beste Ansatz darin, diese Aufgabe mithilfe von PowerShell zu automatisieren. In diesem Artikel erfahren Sie, wie Sie in Exchange Online (Microsoft 365) einen Ordner für alle Postfächer erstellen.
Installieren Sie Microsoft Graph PowerShell
Bevor wir fortfahren und allen Postfächern in Exchange Online (Microsoft 365) einen Ordner hinzufügen können, müssen wir Microsoft Graph PowerShell installieren.
Starten Sie Windows PowerShell als Administrator und führen Sie den folgenden Befehl aus.
Install-Module Microsoft.Graph -ForceWichtig:Aktualisieren Sie immer auf die neueste Version des Microsoft Graph PowerShell-Moduls, bevor Sie ein Cmdlet oder Skript ausführen, um Fehler und falsche Ergebnisse zu vermeiden.
Nachdem wir nun das Microsoft Graph PowerShell SDK-Modul installiert haben, können wir mit dem nächsten Schritt fortfahren.
Empfohlene Lektüre:So schützen Sie einen Ordner mit einem Passwort auf einer externen Festplatte | Laufwerk/Ordner verschlüsseln
Stellen Sie eine Verbindung zu Microsoft Graph PowerShell her
Um das PowerShell-Skript ausführen zu können, müssen Sie zunächst eine App-Registrierung mit den richtigen Berechtigungen und einem Client-Geheimnis für die Authentifizierung bei Microsoft Graph PowerShell erstellen.
Die Anwendungsberechtigungen sind:
- Mail.ReadWrite
- Benutzer.Alles lesen
Lesen Sie mehr dazu im Artikel So stellen Sie eine Verbindung zu Microsoft Graph PowerShell her.
Um mit PowerShell einen Ordner für alle Postfächer in Exchange Online (Microsoft 365) zu erstellen, führen Sie die folgenden Schritte aus:
Schritt 1: Laden Sie das PowerShell-Skript „Add-MailboxFolder“ herunter
Laden Sie das PowerShell-Skript Add-MailboxFolder.ps1 herunter und platzieren Sie es imC:SkripteOrdner.
Stellen Sie sicher, dass die Datei entsperrt ist, um Fehler beim Ausführen des Skripts zu vermeiden. Lesen Sie mehr im Artikel Fehler „Nicht digital signiert“ beim Ausführen des PowerShell-Skripts.
Eine andere Möglichkeit besteht darin, den folgenden Code zu kopieren und in Notepad einzufügen. Geben Sie ihm den NamenAdd-MailboxFolder.ps1und legen Sie es in dieC:SkripteOrdner.
Stellen Sie sicher, dass Sie die Werte der Parameter zeilenweise ändern27,28, Und29.
<#
.SYNOPSIS
Add-MailboxFolder.ps1
.DESCRIPTION
This script will add a folder for all mailboxes in Exchange Online (Microsoft 365).
.LINK
www.alitajran.com/create-folder-for-all-mailboxes-in-exchange-online/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
X: x.com/alitajran
.CHANGELOG
V1.00, 01/26/2025 - Initial version
#>
param (
[Parameter(Mandatory=$true)]
[string]$FolderName
)
# Configuration
$ClientId = "1cdc5f74-621b-4160-b80c-8243945bdc91"
$TenantId = "eb403171-a42c-4d98-a18f-1876518c9deb"
$ClientSecret = "mFs8Q~wD25t5YQaMV0VuQBzG~KMLYP1ob3g43dpr"
# Convert the client secret to a secure string
$ClientSecretPass = ConvertTo-SecureString -String $ClientSecret -AsPlainText -Force
# Create a credential object using the client ID and secure string
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ClientId, $ClientSecretPass
# Connect to Microsoft Graph with Client Secret
Connect-MgGraph -TenantId $TenantId -ClientSecretCredential $ClientSecretCredential -NoWelcome
# Retrieve all users in the tenant
$Users = Get-MgUser -All -Filter "assignedLicenses/`$count ne 0 and userType eq 'Member'" -ConsistencyLevel eventual -CountVariable Records | Select-Object Id, UserPrincipalName
# Loop through each user to add a folder
foreach ($user in $Users) {
try {
Write-Host "Processing user: $($user.UserPrincipalName)" -ForegroundColor Cyan
# Check if folder already exists
try {
$ExistingFolder = Get-MgUserMailFolder -UserId $user.Id -Filter "DisplayName eq '$FolderName'" -ErrorAction Stop | Select-Object DisplayName
}
catch {
Write-Host "Error retrieving folders for user: $($user.UserPrincipalName)" -ForegroundColor Red
continue # Skip to the next user if we can't even retrieve folders
}
if (-not $ExistingFolder) {
# If the folder does not exist, create it
$body = @{
DisplayName = $FolderName
}
$null = New-MgUserMailFolder -UserId $user.Id -BodyParameter $body
Write-Host "Folder '$FolderName' has been added for user: $($user.UserPrincipalName)" -ForegroundColor Green
}
else {
Write-Host "Folder '$FolderName' already exists for user: $($user.UserPrincipalName)" -ForegroundColor Yellow
}
}
catch {
Write-Host "Error processing user $($user.UserPrincipalName): $_" -ForegroundColor Red
}
}Schritt 2: Führen Sie das PowerShell-Skript „Add-MailboxFolder“ aus
Führen Sie das ausAdd-MailboxFolder.ps1PowerShell-Skript zum Erstellen eines Ordners für alle Postfächer in Exchange Online.
In diesem Beispiel lautet der Ordner, der erstellt wirdOrdnerA.
c:scripts.Add-MailboxFolder.ps1 -FolderName "FolderA"Schritt 3. Überprüfen Sie den hinzugefügten Ordner im Postfach
Melden Sie sich anAusblickmit einem Benutzerpostfach und überprüfen Sie, ob der Ordner erstellt wurde.
So sieht es aus.

Das ist es!
Abschluss
Sie haben gelernt, wie Sie mit PowerShell einen Ordner für alle Postfächer in Exchange Online erstellen. Installieren Sie zunächst Microsoft Graph PowerShell. Führen Sie als Nächstes das PowerShell-Skript Add-MailboxFolder.ps1 aus. Danach wird allen Postfächern der neue Ordner zu ihrem Postfach hinzugefügt.
Hat Ihnen dieser Artikel gefallen? Möglicherweise gefällt Ihnen auch der Export von Entra ID-App-Registrierungen, Zertifikaten und Ablaufberichten für Geheimnisse. Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.















