Get-MailboxDatabase "My Database" -status | select *backup* | fl
What you get back:BackupInProgress :
SnapshotLastFullBackup :
SnapshotLastIncrementalBackup :
SnapshotLastDifferentialBackup :
SnapshotLastCopyBackup :
LastFullBackup :
LastIncrementalBackup :
LastDifferentialBackup :
LastCopyBackup :
Here's a quick shell script that dumps each Storage Group and its backup-related information. I haven't had the time to build in any validation or test to run remotely, but you can use it on an Exchange 2007 server to get the following details:
1. Storage Group Name
2. Transaction log file path
3. Date Storage Group was created
4. Name and timestamp of the oldest transaction log file
5. Number of transaction log files in the path
6. Mailbox Databases in each Storage Group
7. For each MDB, time when full, incremental, and differential backups (Streaming or VSS) were performed
(including a warning if the first log file is still available, which basically means a Full backup has never been completed).
In the following screenshot, the First Storage Group has never been backed up, so the E**00000001.log file still exists (and its timestamp is same as the Storage Group's creation time). The second Storage Group has just been backed up, and therefore has fewer transaction logs.
What needs to be added:
- Time (number of days/hours) from last backup
- Warning when last backup is older than X number of days
Using the -Status switch: Reader Wolfgang Sauer points out
If you saw this post yesterday and wondered why the *backup* fields in Get-MailboxDatabase output were showing up as blank (or $null in PowerShell-speak), even after a backup has been taken, it's because we left out the -Status switch that's required with Get-MailboxDatabase cmdlet to make these details show up. Thanks to reader Wolfgang Sauer from Germany for pointing out the omission.
The script and the screenshot have been updated accordingly. If you downloaded the script before today, please download the updated version.
All scripts/downloads on this site provided as-is, with no warranties, and confer no rights. Please test any scripts/downloads in a lab environment before using it in production.
Labels: Administration, Exchange Server 2007, Exchange Shell, Scripts
3 Comments:
Hi Bharat,
How can i give input for this script from a text to file for list of servers.
Thanks,
Prasad
@Anonymous/Prasad: You'd need to use import-csv to import list of servers, then use a foreach loop to get all mailbox databases for the server and feed them to the code.
get-exchangeserver | get-mailboxdatabase -status | select storagegroup, name, lastfullbackup, lastincrementalbackup | format-table storagegroup, name, lastfullbackup, lastincrementalbackup
Post a Comment
Links to this post:
Create a Link
<< Home