Exchange Server Forums
Forums |
Register |
Login |
My Profile |
Inbox |
RSS |
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
Login
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
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” ###############################
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