Mailbox Information to HTML

by Chris Crandall 3. March 2010 11:28

If we are able to export data from public folders we should be able to export data from mailboxes. What I have done is taken the same code used in the Public Folder to HTML blog but, just replaced the public folder commands with mailbox commands.

Note: To be able to use the sortable feature you will need to download the JS script form this website, http://www.kryogenix.org/code/browser/sorttable/.

I encourage changing the HTML output to reflect the needs of your environment. When you change the value you want to output you will also need to modify the code if you want to make the table sortable by numerical value instead of ascending.  For example let’s look at a line of code:

(Get-Content C:\report.htm) | Foreach-Object {if($_ -like "*TotalItemSize*"){$_ -replace "Database</th><th>", "Database</th><th class=sorttable_numeric>"} else{$_}} | Set-Content C:\report.htm

As you can tell from the command we are searching for anything in the report.html file “Like” TotalItemSize. Once we find this we want to replace "Database</th><th>", with Database</th><th class=sorttable_numeric>" to make the table TotalItemSize sort base on a numerical value. Let take a look at the HTML source.

So the search found the phrase TotalItemsize

clip_image002

It now will delete DisplayName<\th><th> and replace it with Database</th><th class=sorttable_numeric>

clip_image003

Now allowing me to sort base on the actual size of the TotalItems

clip_image005

Here is what a sample export will look like. If you have any questions please let me know.

clip_image006

Here is the Code

Get-Date | Select-Object Date | convertTo-HTML -head $a -Title "Mailbox Information" | Out-File c:\report.htm

$server = "server name"

$a= "<script src=c:\temp\sorttable.js type=text/javascript></script>"

$a = $a + "<style>"

$a = $a + "BODY{background-color:gray;}"

$a = $a + "TABLE.sortable thead {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"

$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:yellow}"

$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:white}"

$a = $a + "</style>"

Get-mailboxStatistics -Server $server| Select-Object DisplayName, Database,TotalItemSize,StorageGroupName,StorageLimitStatus,LegacyDN  | convertTo-HTML -Body "<H2>Mailbox Statistics</H2>"   |  Out-File c:\report.htm -append

get-mailbox -Server $server | Select-Object DistinguishedName,IsMailboxEnabled,UseDatabaseQuotaDefaults,IssueWarningQuota,ProhibitSendQuota,ProhibitReceiveQuota,UserAccountControl  | convertTo-HTML -head $a -Title "Mailbox Information" -Body "<H2>Mailbox Information</H2>" |  Out-File c:\report.htm -append

(Get-Content C:\report.htm) | Foreach-Object {$_ -replace "<table>", "<table class =sortable>"} | Set-Content C:\report.htm

(Get-Content C:\report.htm) | Foreach-Object {if($_ -like "*TotalItemSize*"){$_ -replace "Database</th><th>", "Database</th><th class=sorttable_numeric>"} else{$_}} | Set-Content C:\report.htm

(Get-Content C:\report.htm) | Foreach-Object {if($_ -like "*IssueWarningQuota*"){$_ -replace "UseDatabaseQuotaDefaults</th><th>", "UseDatabaseQuotaDefaults</th><th class=sorttable_numeric>"} else{$_}} | Set-Content C:\report.htm

(Get-Content C:\report.htm) | Foreach-Object {if($_ -like "*ProhibitSendQuota*"){$_ -replace "IssueWarningQuota</th><th>", "IssueWarningQuota</th><th class=sorttable_numeric>"} else{$_}} | Set-Content C:\report.htm

(Get-Content C:\report.htm) | Foreach-Object {if($_ -like "*ProhibitReceiveQuota*"){$_ -replace "ProhibitSendQuota</th><th>", "ProhibitSendQuota</th><th class=sorttable_numeric>"} else{$_}} | Set-Content C:\report.htm

Happy Exchanging!!!

Tags: ,

chris | Exchange

Powered by BlogEngine.NET 1.5.0.7 | Log in

Calendar

<<  June 2013  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar