PowerShell Techguy.at

Check Last Backup – neues SCDPM Script

Es gibt mal wieder ein neues SCDPM PowerShell Script für euch.

Dies ist aus meinen wöchentlichen DPM Checks entstanden. Es ist immer wieder vorgekommen, das ohne Fehler, manche Recovery Points sehr alt waren.

In diesem Fall hat irgendwer die Fehlermeldung auf inaktiv gesetzt oder im vorhinein die Jobs deaktiviert.

Mein Script durchsucht alle Datasources nach deren letzten Recovery Point und meldet jene die älter als X Tage sind.

Diese Tage könnt ihr natürlich im Script konfigurieren.

Mit allen betroffenen Datasources, deren letzter Recovery Point zu lange her ist, wird versucht ein Recovery Point oder einen Konsistenz Check zu machen.

Das Script

Hier das ganze Script inkl. Change Log

########################################################
# Name: CheckLastBackups.ps1                              
# Creator: Michael Seidl aka Techguy                    
# CreationDate: 27.06.2014                              
# LastModified: 27.06.2014                               
# Version: 1.0                                         
# Doc: http://www.techguy.at/tag/checklastbackups/
#
# Description: Get all Disk Datasources from your
# DPM Server and compare the last Recoverypoint with your
# configured SpanDays. So you can controll if your
# Datasources are up do date  
#   
# Variables
# SpanDays: How many Days in the past from Today your
# Datasources should have a valid Recoverypoint
#
# Version 1.0 - RTM
########################################################
#
# www.techguy.at                                        
# www.facebook.com/TechguyAT                            
# www.twitter.com/TechguyAT                             
# michael@techguy.at 
########################################################


#Import Modules
Import-Module dataprotectionmanager

#Variables
$DPMServerName="$env:COMPUTERNAME" #will use the Com
$SpanDays="10"

Get-Datasource -DPMServerName  $DPMServerName | Out-Null
$DS=Get-Datasource -DPMServerName  $DPMServerName | where {$_.CurrentProtectionState -eq "Protected"}
$Date=Get-Date -format d ((Get-Date).adddays(-$Spandays))

foreach ($Entry in $DS) {
    $RP=Get-RecoveryPoint -Datasource $Entry | Sort-Object BackupTime -Descending
    if ($RP.count -gt 0) {
        $CompareDate=Get-date($RP[0].BackupTime) -format d
        $Span=New-TimeSpan -Start $CompareDate -End $Date
            if ($Span.Days -gt 0) {
                Write-Host "Error" $CompareDate $Date $Entry -ForegroundColor red
                if ($Entry.State -eq "Invalid") {
                Start-DPMDatasourceConsistencyCheck -Datasource $Entry
                } else {
                New-RecoveryPoint -Datasource $Entry -Disk -BackupType expressfull –WithDataIntegrityCheck -Verbose
                }
            } else {
            }
    } elseif ($RP.count -eq 0) {
    Write-Host "Error, no Recoverpoint" $Entry -ForegroundColor red
    Start-DPMDatasourceConsistencyCheck -Datasource $Entry
    }
}

Den Download gibt’s in der TechNet Gallery: http://gallery.technet.microsoft.com/Check-DPM-for-last-96f12c86

Alle meine TechNet Gallery Downloads findet ihr hier: 1jrYQoA

BITTE BEWERTE MEINE DOWNLOADS IN DER TECHNET GALLERY UND SAGT MIR WAS IHR EUCH VON DER NÄCHSTEN VERSION WÜNSCHT.

Michael Seidl aka Techguy

2 thoughts on “Check Last Backup – neues SCDPM Script”

  1. Hallo,
    ich wollte mal nachfragen, ob das Script nur mit DPM2007 läuft? Zumindest habe ich es gerade mit DPM2012 nicht zum laufen gebracht.
    Grüße

Leave a Comment

Your email address will not be published. Required fields are marked *

*