A organização decidiu que todas as caixas de correio deveriam ter uma pasta específica no Outlook. Se pedirem aos usuários para fazer isso, na maioria dos casos, isso dará errado, pois eles irão criá-lo como uma subpasta ou com um nome incorreto. Para garantir consistência e precisão, a melhor abordagem é automatizar esta tarefa usando o PowerShell. Neste artigo, você aprenderá como criar uma pasta para todas as caixas de correio no Exchange Online (Microsoft 365).
Instale o Microsoft Graph PowerShell
Antes de prosseguirmos e adicionar uma pasta a todas as caixas de correio no Exchange Online (Microsoft 365), precisamos instalar o Microsoft Graph PowerShell.
Inicie o Windows PowerShell como administrador e execute o comando abaixo.
Install-Module Microsoft.Graph -ForceImportante:Sempre atualize para a versão mais recente do módulo Microsoft Graph PowerShell antes de executar um cmdlet ou script para evitar erros e resultados incorretos.
Agora que temos o módulo Microsoft Graph PowerShell SDK instalado, podemos ir para a próxima etapa.
Conecte-se ao Microsoft Graph PowerShell
Para poder executar o script do PowerShell, primeiro você precisa criar o registro do aplicativo com as permissões corretas e um segredo do cliente para autenticar com o Microsoft Graph PowerShell.
As permissões do aplicativo são:
- Correio.ReadWrite
- Usuário.Ler.Tudo
Leia mais sobre isso no artigo Como se conectar ao Microsoft Graph PowerShell.
Mais leitura:Como configurar SMTP DANE de entrada com DNSSEC no Exchange Online
Crie uma pasta para todas as caixas de correio no Exchange Online com PowerShell
Para criar uma pasta para todas as caixas de correio no Exchange Online (Microsoft 365) com PowerShell, siga as etapas abaixo:
Etapa 1. Baixe o script Add-MailboxFolder do PowerShell
Baixe e coloque o script Add-MailboxFolder.ps1 do PowerShell noC: scriptspasta.
Certifique-se de que o arquivo esteja desbloqueado para evitar erros ao executar o script. Leia mais no artigo Erro não assinado digitalmente ao executar o script do PowerShell.
Outra opção é copiar e colar o código abaixo no Bloco de Notas. Dê-lhe o nomeAdicionar-MailboxFolder.ps1e coloque-o noC: scriptspasta.
Certifique-se de alterar os valores dos parâmetros nas linhas27,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
}
}Etapa 2. Execute o script Add-MailboxFolder do PowerShell
Execute oAdicionar-MailboxFolder.ps1Script do PowerShell para criar uma pasta para todas as caixas de correio no Exchange Online.
Neste exemplo, a pasta que será criada éPastaA.
c:scripts.Add-MailboxFolder.ps1 -FolderName "FolderA"Etapa 3. Verifique a pasta adicionada na caixa de correio
Faça login emPanoramacom uma caixa de correio de usuário e verifique se a pasta foi criada.
Isto é o que parece.

É isso!
Conclusão
Você aprendeu como criar uma pasta para todas as caixas de correio no Exchange Online usando o PowerShell. Primeiro, instale o Microsoft Graph PowerShell. Em seguida, execute o script Add-MailboxFolder.ps1 do PowerShell. Depois disso, todas as caixas de correio terão a nova pasta adicionada à sua caixa de correio.
Você gostou deste artigo? Você também pode gostar do relatório de expiração de certificados e segredos de registros do aplicativo Export Entra ID. Não se esqueça de nos seguir e compartilhar este artigo.















