So Tony Redmond gave me a blank look when I spoke to him for like 30 seconds at MEC, but this little code snippet is featured on PG 491 of Microsoft Exchange 2010 Inside Out.
I use this a lot, and have it wrapped in to a .ps1. Just discovered that like Get-ExchangeServer you can pipe an array of objects to Get-MailboxDatabase. So you could say run:
"db01","db02" | Get-MailboxDatabase
Now that is cool. I have an issue at the moment where some Donkey thought it would be a good idea to reseed two 600GB databases (We use NetApp storage so there is a better way to do it!). I wanted a way to keep an eye on them so I updated the original script. Do you can use the -database switch like this to get the database copy status for db01 and db04 .\Check-DatabaseCopyStatus.ps1 -Database @("db01","db04") -and you could you the server switch to get the database copy status for db01 and db04 just on ex1 .\Check-DatabaseCopyStatus.ps1 -Database @("db01","db04") -Server ex1 Enjoy
PARAM([String]$Server="", [String[]]$Database = "*") If($server -ne ""){$srvtxt=$server;$Server="\" + $server.ToUpper()}ELSE{$srvTxt="All"} Write-Host "Server:" $srvtxt "`nDatabase:"$Database "`n" ########################################################################################## #Load the Exchange 2010 bits & bobs ######################################################################################### $xPsCheck = Get-PSSnapin | Select Name | Where {$_.Name -Like "*Exchange*"} If ($xPsCheck -eq $Null) {Write-Host "Loading Exchange Snapin"; Add-PsSnapin Microsoft.Exchange.Management.PowerShell.e2010} $Database | Get-MailboxDatabase | Sort Name | FOREACH {$db=$_.Name; $xNow=$_.Server.Name ;$dbown=$_.ActivationPreference| Where {$_.Value -eq 1}; Write-Host $db "on" $xNow "Should be on" $dbOwn.Key -NoNewLine; If ( $xNow -ne $dbOwn.Key){Write-host " WRONG" -ForegroundColor Red; }ELSE{Write-Host " OK" -Foregroundcolor Green};Get-MailboxDatabaseCopyStatus $db$Server;"`n"}
Download it from here