dimanche 21 mars 2010

Auditer les Database et Mailbox de votre organisation Exchange 2007

Il peut être utile à un moment ou a un autre de faire un petit point sur votre organisation Exchange. Ou se trouve les banques de données, quel sont les quotas par défaut, quelle est la taille des mailboxs utilisateurs. Voici une idée de départ a creusée ou adapter à votre configuration.

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