Bonjour, aujourd'hui je vais partager en détail le script que j'ai préparé en réponse à un besoin.
Le script vérifie les boîtes aux lettres des utilisateurs au sein de l'UO que vous avez indiquée et distribue les boîtes aux lettres au format CSV de 250 Go. L'adresse e-mail et de quelle base de données il s'agira sont indiquées dans le rapport CSV. Les noms de base de données sont DB01, DB02, DB03 par exemple, et lorsque vous effectuez le processus de distribution, vous pouvez définir la taille de la base de données sur 250 Go.
Si nous voulons examiner les grandes lignes du script, nous pouvons le décomposer comme suit.
Il demande à l'utilisateur de saisir les informations de nom distinctif (DN) de l'UO (unité organisationnelle). C'est DN, PowerShell donné par Get-Mailbox
Il est utilisé dans la commande.
$ouDN = Read-Host "Please enter the distinguished name (DN) of the OU"
Toutes les boîtes aux lettres de l'unité d'organisation sont répertoriées. Ce, Get-Mailbox
Cela se fait avec la commande. -OrganizationalUnit
Le paramètre renvoie les boîtes aux lettres sous une unité d’organisation spécifique. -ResultSize Unlimited
Le paramètre garantit que toutes les boîtes aux lettres sont récupérées.
$mailboxes = Get-Mailbox -OrganizationalUnit $ouDN -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, Database
- Le script démarre ensuite une boucle dans laquelle la taille de chaque boîte aux lettres est calculée et ajoutée à la base de données existante jusqu'à ce qu'elle atteigne la limite de 250 Go.
- Lorsque la limite de 250 Go est dépassée, une nouvelle base de données est créée et la boîte aux lettres suivante est ajoutée à la nouvelle base de données. Ce processus est répété jusqu'à ce que toutes les boîtes aux lettres soient attribuées sans dépasser la limite.
- Ces données sont écrites dans un fichier CSV contenant le nom de chaque boîte aux lettres, la base de données à laquelle elle est attribuée et la taille de la boîte aux lettres.
$newDbs | Export-Csv -Path "new_dbs.csv" -NoTypeInformation -Encoding UTF8
<#
=============================================================================================
Name = Cengiz YILMAZ
Date = 1.03.2023
www.cengizyilmaz.net
www.cozumpark.com/author/cengizyilmaz
============================================================================================
#>
# Prompt for DN of the OU
$ouDN = Read-Host "Please enter the distinguished name (DN) of the OU"
# Get all mailboxes in the OU
$mailboxes = Get-Mailbox -OrganizationalUnit $ouDN -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, Database
$newDbs = @()
$dbSize = 0
$dbCount = 1
foreach ($mailbox in $mailboxes) {
$mailboxSize = $mailbox.TotalItemSize.Value.ToGB()
if (($dbSize + $mailboxSize) -le 250) {
# add to current DB
$newDbs += New-Object PSObject -Property @{
'Mailbox' = $mailbox.DisplayName
'DB' = "DB$dbCount"
'SizeInGB' = $mailboxSize
}
$dbSize += $mailboxSize
} else {
# create a new DB
$dbCount++
$dbSize = $mailboxSize
$newDbs += New-Object PSObject -Property @{
'Mailbox' = $mailbox.DisplayName
'DB' = "DB$dbCount"
'SizeInGB' = $mailboxSize
}
}
}
# Export to CSV format with UTF8 encoding
$newDbs | Export-Csv -Path "new_dbs.csv" -NoTypeInformation -Encoding UTF8
Articles similaires – Script de distribution de boîtes aux lettres Exchange Server
- L'authentification de base Exchange Online est terminée
- Désactivation des notifications de briefing Microsoft Viva
- Comment supprimer la stratégie du carnet d'adresses (ABP), la liste d'adresses globale (GAL) et la liste d'adresses (AL) dans Exchange Server ?
- Qu’est-ce que le traitement de bouclage de stratégie de groupe ?