Quick script to get the last backup date for all databases (excluding tempdb & offline databases). Marginally tested (works on my machine), so use at your own risk.
[void][reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo")
[void][reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoEnum")
[void][reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$servers = Get-Content c:\Servers.txt
$outputs = @();
$servers | %{
$srvName = $_
$srvConn = New-Object "Microsoft.SqlServer.Management.Common.ServerConnection"
$srvConn.ServerInstance = $srvName
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server $srvConn
$srv.Databases | where{$_.Name -ne 'tempdb' -and $_.Status -eq [Microsoft.SqlServer.Management.Smo.DatabaseStatus]::Normal} | %{
$output = New-Object -TypeName PSObject -Property @{
Server = $srvName
Database = $_.Name
LastBackupDate = $_.LastBackupDate
}
$outputs += $output
}
}
$outputs | SELECT Server, Database, LastBackupDate
Leave a comment