Exchange 2007 Database White Space Report

Hi Readers,

I am sharing a script that we used in our environment for extracting white space information in exchange databases.This script has been modified so that it can be used in any exchange 2007 environment.

Just extract the attached zip, change the email-ids and smtp server name at the end of the script (white_space_report.ps1)

Download the script from below link

http://gallery.technet.microsoft.com/scriptcenter/Exchange-2007-Database-14b8277a

Run the batch file(white_space_report.bat) after that.

 

You will receive report like below in your email

PowerShell Code:

################################################################################## 
#       Author: Kaustav Samaddar 
#       Reviewer : Vikas SUkhija 
#       Date: 04/05/2013 
#       Modified:01/28/2014 
#       Modificetion: HTML, enviornment independent.. 
#       Description: White space report 
################################################################################## 
##########################Add exchange Shell###################################### 

If ((Get-PSSnapin | where {$_.Name -match "Exchange.Management"}) -eq $null) 
{ 
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin 
} 

################################################################################# 

$db=get-mailboxdatabase | measure-object  

$i=0 

$date=(get-date).adddays(-7) 

$server_list=Get-ExchangeServer | where{($_.ServerRole -like "*mailbox*") -and ($_.AdminDisplayVersion -like "*8.3*")} 
$server_list 

$white_space = @() 

################################## loop thru server list.. 

$server_list | foreach-object { 

    $sname = $_ 
       write-host  "processing Server $sname ................MBX DB" -ForegroundColor green 

    $data = @() 

    $record = get-wmiobject -computer $sname -class Win32_NTLogEvent -Filter "logfile = 'application' AND EventIdentifier = 1074136261 AND sourcename = 'MSExchangeIS Mailbox Store'"| select -First $db.count 

        $record | Foreach-object { 

            $row= "" | select Server,Database,WhitespaceinMB,Timegenerated 

            $row.Server=$sname 

            $row.Timegenerated=Get-Date([System.Management.ManagementDateTimeconverter]::ToDateTime($_.TimeGenerated)) 

            $row.Database=$_.insertionstrings[1] 

            $row.WhitespaceinMB=$_.insertionstrings[0] 

            if($row.timegenerated -ge $date){$data+=$row} 

                    } 

    $pf=Get-PublicFolderDatabase -server $sname 

        if($pf -ne $null){ 

        write-host  "processing Server $_ ................PF DB" -ForegroundColor green 

    $record = get-wmiobject -computer $sname -class Win32_NTLogEvent -Filter "logfile = 'application' AND EventIdentifier = 1074136261 AND sourcename = 'MSExchangeIS public Store'"| select -First $db.count| Sort-Object -Property Message 

        if($record -ne $null) { 

            $record | Foreach-object { 

            $row= "" | select Server,Database,WhitespaceinMB,Timegenerated 

            $row.Server=$sname 

            $row.Timegenerated=Get-Date([System.Management.ManagementDateTimeconverter]::ToDateTime($_.TimeGenerated)) 

            $row.Database=$_.insertionstrings[1] 

            $row.WhitespaceinMB=$_.insertionstrings[0] 

            if($row.timegenerated -ge $date){$data+=$row} 

                          } 
                      } 
                           } 

    $datasorted=$data | sort database -unique 

    $white_space+=$datasorted 

    } 

################build html style http://technet.microsoft.com/en-us/library/ff730936.aspx######## 
$a = "" 

$white_space|ConvertTo-HTML -head $a  | Out-File .\white_space.htm 

$message = new-object System.Net.Mail.MailMessage(“donotreply@labtest.com“, "Vikas.sukhija@labtest.com") 
$message.IsBodyHtml = $True 
$message.Subject = "Exchange 2007 database White Space Report" 
$smtp = new-object Net.Mail.SmtpClient(“SMTP SERVER NAME“) 
$body = get-content ".\white_space.htm" 
$message.body = $body 
$smtp.Send($message) 

###############################################################################################

Regards

Sukhija Vikas

About these ads
This entry was posted in Exchange, Scripting and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s