• RSS
  • Twitter
  • FaceBook

Exchange Server Forums

Forums | Register | Login | My Profile | Inbox | RSS RSS icon | My Subscription | My Forums | Address Book | Member List | Search | FAQ | Ticket List | Log Out

Getting Database Statistics with Script

Users viewing this topic: none

Logged in as: Guest
  Printable Version
All Forums >> [Microsoft Exchange 2010] >> General >> Getting Database Statistics with Script Page: [1]
Login
Message << Older Topic   Newer Topic >>
Getting Database Statistics with Script - 2.Feb.2012 5:15:55 PM   
brolt10000

 

Posts: 2
Joined: 2.Feb.2012
Status: offline
Can someone review this script for me? I have no clue why it isnt working or I'm already burned out.. Thanks

###############################
#Displays Information about mailboxes inside a database
# DisplayName
# Alias
# Database
# ItemCount
# Mailbox(MB)
# DeletedItemCount
# DeletedItems(MB)
# Total
###############################

###############################
"Status: Collecting Database Data..."
###############################

#Param(
# [Parameter(Mandatory=$true)]
# [System.Management.Automation.ValidateNotNullOrEmptyAttribute()]
# [string] $serverName,
#
# [Parameter(Mandatory=$false)] [switch] $whatif = $false
#)

function Foo-Bar {
Param ([string]$DAGDatabase=(Read-Host "Enter a Database name"))
write-host "You entered $DAGDatabase"
}


$date = Get-Date -UFormat "%Y%m%d"
$error.clear()
$AllMailboxes = @()
$MailboxPipeline = get-mailbox $DAGDatabase -resultsize unlimited


###############################
“Status: Collecting Mailbox Data...”
###############################


$MailboxPipeline | foreach {
$Mailbox = $_
$MailboxStatsPipeline = Get-MailBoxStatistics -Identity:$_.Name
$MailboxStatsPipeline | Foreach {
$Stats = "" | Select DisplayName,Name,Database,ItemCount,TotalItemSize,DeletedItemCount,TotalDeletedItemSize
$Stats.DisplayName = $Mailbox.DisplayName
$stats.Name = $Mailbox.Name
$Stats.Database = $_.Database
$Stats.ItemCount = $_.ItemCount
$Stats.MailboxMB = @{expression={$_.totalitemsize.value.ToMB()}
$Stats.DeletedItemCount = $_.DeletedItemCount
$Stats.DeletedItemsMB = @{expression={$_.TotalDeletedItemSize.value.ToMB()}
$AllMailboxes += $Stats
}
}




$body = $Allmailboxes | Select DisplayName,Name,Database,ItemCount,MailboxMB,DeletedItemCount,DeletedItemsMB | Sort-object DisplayName


###############################
“Start CSV Write”
###############################

$DAGDatabase | Export-Csv "TempDagDatabase.csv" -Notype
$Mailbox | Export-Csv “TempMailbox.csv” -NoType
$Allmailboxes | Export-Csv “TempAllmailboxes.csv” -NoType
$MailboxPipeline | Export-Csv “TempMailboxPipeline.csv” -NoType
$MailboxStatsPipeline | Export-Csv “TempMailboxStatsPipeline.csv” -NoType
$Stats | Export-Csv “TempStats.csv” -NoType
$body | Export-Csv “MailboxStatistics $date.csv” -NoType

###############################
“End CSV Write”
###############################


All thos export to CSV are for validation purposes while I get it working. This is the error I'm getting:

Missing '=' operator after key in hash literal.
At D:\code\enr\MailboxStatistics.ps1:54 char:19
+ $AllMailboxes += <<<< $Stats
+ CategoryInfo : ParserError: (:) [], ParseE
+ FullyQualifiedErrorId : MissingEqualsInHashLiteral
Post #: 1
RE: Getting Database Statistics with Script - 3.Feb.2012 2:59:37 PM   
brolt10000

 

Posts: 2
Joined: 2.Feb.2012
Status: offline
Found the problem. Anyway, this is the working script in case someon needs it:

###############################
#Displays Information about mailboxes inside a database
# DisplayName
# Name
# Database
# ItemCount
# Mailbox(MB)
# DeletedItemCount
# DeletedItems(MB)
###############################

###############################
"Status: Collecting Database Data..."
###############################

$DAGDatabase=Read-Host "Enter a Database name"

write-host "You entered $DAGDatabase"
write-host "Press any key to continue"

#Wait for keypress
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")


$date = Get-Date -UFormat "%Y-%m-%d"
$error.clear()
$AllMailboxes = @()
$Database = $DAGDatabase
$MailboxPipeline = get-mailbox -Database $DAGDatabase -resultsize unlimited


###############################
“Status: Collecting Mailbox Data...”
###############################


$MailboxPipeline | foreach {
$Mailbox = $_
$MailboxStatsPipeline = Get-MailBoxStatistics -Identity:$_.Name
$MailboxStatsPipeline | Foreach {
$Stats = "" | Select DisplayName,Name,Database,ItemCount,TotalItemSize,DeletedItemCount,TotalDeletedItemSize,MailboxMB,DeletedItemsMB
$Stats.DisplayName = $Mailbox.DisplayName
$stats.Name = $Mailbox.Name
$Stats.Database = $_.Database
$Stats.ItemCount = $_.ItemCount
$Stats.MailboxMB = $_.totalitemsize.value.ToMB()
$Stats.DeletedItemCount = $_.DeletedItemCount
$Stats.DeletedItemsMB = $_.TotalDeletedItemSize.value.ToMB()
$AllMailboxes += $Stats
}
}




$body = $Allmailboxes | Select DisplayName,Name,Database,ItemCount,MailboxMB,DeletedItemCount,DeletedItemsMB | Sort-object DisplayName


###############################
“Start CSV Write”
###############################

#$DAGDatabase | Export-Csv "TempDagDatabase.csv" -Notype
#$Mailbox | Export-Csv “TempMailbox.csv” -NoType
#$Allmailboxes | Export-Csv “TempAllmailboxes.csv” -NoType
#$MailboxPipeline | Export-Csv “TempMailboxPipeline.csv” -NoType
#$MailboxStatsPipeline | Export-Csv “TempMailboxStatsPipeline.csv” -NoType
#$Stats | Export-Csv “TempStats.csv” -NoType

$body | Export-Csv “MailboxStatistics $Database $date.csv” -NoType

###############################
“End CSV Write”
###############################

(in reply to brolt10000)
Post #: 2

Page:   [1] << Older Topic    Newer Topic >>
All Forums >> [Microsoft Exchange 2010] >> General >> Getting Database Statistics with Script Page: [1]
Jump to:

New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Follow TechGenix on Twitter