Blog/Exchange/mailbox_size_export.ps1

38 lines
1.6 KiB
PowerShell
Raw Normal View History

2023-12-16 16:37:57 +01:00
#Script créé par Nicolas Lang - Sous licence CC-BY-SA
2023-12-16 16:33:33 +01:00
#https://nicolaslang.fr
2023-12-16 12:06:45 +01:00
$versionexchange = Get-WmiObject Win32_Product | Where-object {$_.name -like "Microsoft Exchange Server"}
$serveur = "[Nom de votre serveur exchange]"
#Versions Exchange renvoyées sur le get-wmiobject Win32_Product
# Exchange 2007 => 8.x.xx.x
# Exchange 2010 => 14.xx.xxxx.xxx
# Exchange 2013 => 15.xx.xxxx.xx
Switch -wildcard ($versionexchange.version)
{
"8*" {$module = "Microsoft.Exchange.Management.Powershell.Admin";break}
"14*"{$module = "Microsoft.Exchange.Management.PowerShell.E2010";break}
"15*"{$module = "Microsoft.Exchange.Management.PowerShell.E2013";break}
}
Write-Warning "Chargement du module Exchange pour Powershell, cela peut prendre quelques secondes!"
Add-PSSnapin $module
$boites = get-mailboxstatistics -server $serveur
function addtab
{
param([string]$nom,[int]$taille)
$add = New-Object PSObject
$add | Add-Member -Name Nom -MemberType Noteproperty -Value $Nom
$add | Add-Member -Name "Taille (Mb)" -MemberType Noteproperty -Value $taille
return $add
}
$ajout = @()
foreach ($box in $boites)
{
$ajout += addtab -nom $box.displayname -taille $box.totalitemsize.value.tomb()
}
$chemin = [Environment]::GetFolderPath("Desktop")
$filename = "tailles boites "+(get-date).toshortdatestring().replace("/","_")+" "+(get-date).toshorttimestring().replace(":"," ")
$fichier = ($chemin+"\"+$filename)+".csv"
set-location c:\
$ajout | Sort-Object -Property "Taille (Mb)"-Descending | Export-Csv -Path $fichier -Encoding UTF8 -NoTypeInformation -Delimiter ";"
$ajout |sort-object -property "Taille (Mb)" -descending |fl
Read-Host -Prompt "Fichier exporté sur le bureau!"