L'organizzazione ha deciso che tutte le caselle di posta dovessero avere una cartella specifica in Outlook. Se chiedono agli utenti di farlo, nella maggior parte dei casi, ciò andrà storto, poiché lo creeranno come sottocartella o con un nome errato. Per garantire coerenza e precisione, l'approccio migliore consiste nell'automatizzare questa attività utilizzando PowerShell. In questo articolo imparerai come creare una cartella per tutte le cassette postali in Exchange Online (Microsoft 365).
Installa Microsoft Graph PowerShell
Prima di poter procedere oltre e aggiungere una cartella a tutte le caselle di posta in Exchange Online (Microsoft 365), dobbiamo installare Microsoft Graph PowerShell.
Avvia Windows PowerShell come amministratore ed esegui il comando seguente.
Install-Module Microsoft.Graph -ForceImportante:Aggiorna sempre alla versione più recente del modulo Microsoft Graph PowerShell prima di eseguire un cmdlet o uno script per evitare errori e risultati non corretti.
Ora che abbiamo installato il modulo SDK di Microsoft Graph PowerShell, possiamo andare al passaggio successivo.
Lettura consigliata:Come proteggere la cartella con password nel disco rigido esterno | Crittografa unità/cartella
Connettersi a Microsoft Graph PowerShell
Per poter eseguire lo script PowerShell devi prima creare la registrazione dell'app con le autorizzazioni corrette e un segreto client per autenticarti con Microsoft Graph PowerShell.
I permessi dell'applicazione sono:
- Mail.ReadWrite
- Utente.Leggi.Tutto
Maggiori informazioni sull'argomento nell'articolo Come connettersi a Microsoft Graph PowerShell.
Per creare una cartella per tutte le cassette postali in Exchange Online (Microsoft 365) con PowerShell, attenersi alla seguente procedura:
Passaggio 1. Scarica lo script PowerShell Aggiungi-MailboxFolder
Scarica e inserisci lo script PowerShell Add-MailboxFolder.ps1 nel fileC: scriptcartella.
Assicurarsi che il file sia sbloccato per evitare errori durante l'esecuzione dello script. Maggiori informazioni nell'articolo Errore senza firma digitale durante l'esecuzione dello script PowerShell.
Un'altra opzione è copiare e incollare il codice seguente nel Blocco note. Dategli il nomeAggiungi-MailboxFolder.ps1e posizionarlo nelC: scriptcartella.
Assicurati di modificare i valori dei parametri nelle righe27,28, E29.
<#
.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
}
}Passaggio 2. Eseguire lo script PowerShell Aggiungi-MailboxFolder
Esegui ilAggiungi-MailboxFolder.ps1Script di PowerShell per creare una cartella per tutte le cassette postali in Exchange Online.
In questo esempio, la cartella che verrà creata èCartellaA.
c:scripts.Add-MailboxFolder.ps1 -FolderName "FolderA"Passaggio 3. Verifica la cartella aggiunta nella casella di posta
Accedi aVedutacon una casella di posta utente e verificare che la cartella sia creata.
Questo è quello che sembra.

Questo è tutto!
Conclusione
Hai imparato come creare una cartella per tutte le cassette postali in Exchange Online utilizzando PowerShell. Innanzitutto, installa Microsoft Graph PowerShell. Successivamente, esegui lo script PowerShell Add-MailboxFolder.ps1. Successivamente, tutte le caselle di posta avranno la nuova cartella aggiunta alla propria casella di posta.
Ti è piaciuto questo articolo? Potrebbe interessarti anche Registrazioni app Export Entra ID Certificati e Report scadenza segreti. Non dimenticare di seguirci e condividere questo articolo.

![Ripristina la password dell'ID Apple senza un numero di telefono [Ultimate Guide!]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/05/reset-apple-id-password-without-phone-number-via-settings-app-1.jpg)




![[Changelog] Novità di Opera 100 e versioni successive](https://media.askvg.com/articles/images2/Opera_Browser.png)







