Organizacja zdecydowała, że wszystkie skrzynki pocztowe powinny mieć określony folder w swoim Outlooku. Jeśli poproszą o to użytkowników, w większości przypadków zakończy się to niepowodzeniem, ponieważ utworzą go jako podfolder lub z nieprawidłową nazwą. Aby zapewnić spójność i dokładność, najlepszym podejściem jest automatyzacja tego zadania za pomocą programu PowerShell. W tym artykule dowiesz się, jak utworzyć folder dla wszystkich skrzynek pocztowych w Exchange Online (Microsoft 365).
Zainstaluj Microsoft Graph PowerShell
Zanim będziemy mogli przejść dalej i dodać folder do wszystkich skrzynek pocztowych w Exchange Online (Microsoft 365), musimy zainstalować Microsoft Graph PowerShell.
Uruchom Windows PowerShell jako administrator i uruchom poniższe polecenie.
Install-Module Microsoft.Graph -ForceWażny:Zawsze aktualizuj moduł Microsoft Graph PowerShell do najnowszej wersji przed uruchomieniem polecenia cmdlet lub skryptu, aby zapobiec błędom i nieprawidłowym wynikom.
Teraz, gdy mamy zainstalowany moduł Microsoft Graph PowerShell SDK, możemy przejść do następnego kroku.
Połącz się z Microsoft Graph PowerShell
Aby móc uruchomić skrypt PowerShell, musisz najpierw utworzyć rejestrację aplikacji z odpowiednimi uprawnieniami i kluczem tajnym klienta w celu uwierzytelnienia za pomocą Microsoft Graph PowerShell.
Uprawnienia aplikacji to:
- Poczta.PrzeczytajZapisz
- Użytkownik.Przeczytaj.Wszystko
Więcej na ten temat przeczytasz w artykule Jak połączyć się z Microsoft Graph PowerShell.
Więcej czytania:Jak skonfigurować przychodzący SMTP DANE z DNSSEC w Exchange Online
Utwórz folder dla wszystkich skrzynek pocztowych w Exchange Online za pomocą programu PowerShell
Aby utworzyć folder dla wszystkich skrzynek pocztowych w Exchange Online (Microsoft 365) za pomocą programu PowerShell, wykonaj poniższe czynności:
Krok 1. Pobierz skrypt PowerShell Add-MailboxFolder
Pobierz i umieść skrypt PowerShell Add-MailboxFolder.ps1 w plikuC:skryptyfalcówka.
Upewnij się, że plik jest odblokowany, aby zapobiec błędom podczas uruchamiania skryptu. Przeczytaj więcej w artykule Błąd braku podpisu cyfrowego podczas uruchamiania skryptu PowerShell.
Inną opcją jest skopiowanie i wklejenie poniższego kodu do Notatnika. Podaj nazwęDodaj MailboxFolder.ps1i umieść go wC:skryptyfalcówka.
Upewnij się, że zmieniłeś wartości parametrów w liniach27,28, I29.
<#
.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
}
}Krok 2. Uruchom skrypt PowerShell Add-MailboxFolder
UruchomDodaj MailboxFolder.ps1Skrypt PowerShell umożliwiający utworzenie folderu dla wszystkich skrzynek pocztowych w Exchange Online.
W tym przykładzie folder, który zostanie utworzony toFolderA.
c:scripts.Add-MailboxFolder.ps1 -FolderName "FolderA"Krok 3. Sprawdź dodany folder w skrzynce pocztowej
Zaloguj się doPerspektywyze skrzynką pocztową użytkownika i sprawdź, czy folder został utworzony.
Tak to wygląda.

To wszystko!
Wniosek
Dowiedziałeś się, jak utworzyć folder dla wszystkich skrzynek pocztowych w Exchange Online przy użyciu programu PowerShell. Najpierw zainstaluj Microsoft Graph PowerShell. Następnie uruchom skrypt PowerShell Add-MailboxFolder.ps1. Następnie do wszystkich skrzynek pocztowych zostanie dodany nowy folder.
Czy podobał Ci się ten artykuł? Możesz także zainteresować się raportem o wygaśnięciu rejestracji aplikacji Entra ID i wygaśnięciu tajemnic. Nie zapomnij nas obserwować i udostępnić ten artykuł.


![[Naprawiono] Windows 11 Menu Start nie działa po aktualizacji](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/04/fix-windows-11-start-menu-not-working-after-update.webp.webp.webp)





![Błąd instalacji sterownika Intel i wsparcia 0x80070643 [Poprawka]](https://elsefix.com/tech/tejana/wp-content/uploads/2025/01/intel-driver-support-assist.png)



