Suivant la taille de votre organisation, le temps d'exécution du script peut être plus ou moins long.
L'idée de ce script est de récupérer une liste de serveur ayant le rôle mailbox et exécutant Exchange 2007. Pour chaque serveur, on récupère alors les databases qui y sont stockées. Et enfin, pour chaque mailbox on récupère les stats.
Les infos collectées sont exportées dans deux fichiers, un pour les databases et un pur les mailboxs.
Le script :
# Recupération des serveurs ayant le role mailbox en Exchange 2007
$Exchange2007MailboxServer = Get-ExchangeServer | Where-Object { $_.AdminDisplayVersion.major -eq 8 -and $_.IsMailboxServer -eq $true}
write-host -Foregroundcolor GREEN "Serveur(s) avec le role de Mailbox :"
write-host $Exchange2007MailboxServer
# initialisation du resultat
$Result = @()
$ResultMailbox = @()
foreach($server in $Exchange2007MailboxServer){
$MailboxDatabaseOnServer = Get-MailboxDatabase -server $server
foreach($MailboxDatabase in $MailboxDatabaseOnServer){
$LineResult = New-Object PSObject
$LineResult | Add-Member NoteProperty -Name "MailboxServer" -Value $server.Name
$LineResult | Add-Member NoteProperty -Name "StorageGroup" -Value $MailboxDatabase.StorageGroup
$LineResult | Add-Member NoteProperty -Name "Database Name" -Value $MailboxDatabase.Name
$LineResult | Add-Member NoteProperty -Name "Edb File Path" -Value $MailboxDatabase.EdbFilePath
$LineResult | Add-Member NoteProperty -Name "Quota Warning" -Value $MailboxDatabase.IssueWarningQuota
$LineResult | Add-Member NoteProperty -Name "Quota Send" -Value $MailboxDatabase.ProhibitSendQuota
$LineResult | Add-Member NoteProperty -Name "Quota Send/Receive" -Value $MailboxDatabase.ProhibitSendReceiveQuota
$Result += $LineResult
$MailboxOndatabase = Get-Mailbox -database $MailboxDatabase.Identity
foreach($Mailbox in $MailboxOnDatabase){
$LineResultMailbox = New-Object PSObject
$LineResultMailbox | Add-Member NoteProperty -Name "Server" -Value $server.Name
$LineResultMailbox | Add-Member NoteProperty -Name "Database" -Value $MailboxDatabase.Identity
$LineResultMailbox | Add-Member NoteProperty -Name "Name" -Value $Mailbox.Name
$LineResultMailbox | Add-Member NoteProperty -Name "SamAccountName" -Value $Mailbox.SamAccountName
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Defaults" -Value $Mailbox.UseDatabaseQuotaDefaults
if($Mailbox.UseDatabaseQuotaDefaults){
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Warning" -Value $MailboxDatabase.IssueWarningQuota
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Send" -Value $MailboxDatabase.ProhibitSendQuota
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Send/Receive" -Value $MailboxDatabase.ProhibitSendReceiveQuota
}else{
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Warning" -Value $Mailbox.IssueWarningQuota
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Send" -Value $Mailbox.ProhibitSendQuota
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Send/Receive" -Value $Mailbox.ProhibitSendReceiveQuota
}
$MailboxStats = Get-MailboxStatistics -identity $Mailbox.Identity
$LineResultMailbox | Add-Member NoteProperty -Name "Quota Status" -Value $MailboxStats.StorageLimitStatus
$LineResultMailbox | Add-Member NoteProperty -Name "Count Item" -Value $MailboxStats.ItemCount
$LineResultMailbox | Add-Member NoteProperty -Name "Total Item Size" -Value $MailboxStats.TotalItemSize
$ResultMailbox += $LineResultMailbox
}
}
}
$Result | Export-Csv "Database-Audit.csv" -notype -force -Encoding UTF8
$ResultMailbox | Export-Csv "Mailbox-Audit.csv" -notype -force -Encoding UTF8
Toutes les sources sont mise à disposition gratuitement mais vous les utilisez sous votre propre responsabilité..
0 commentaires:
Enregistrer un commentaire