Im Windows Server 2008 ist das Backup Tool “Windows Server Backup” enthalten.

1x1.trans Windows Server 2008: automatisches Backup per BatchEdit/Update: Diese Serversicherung (vor allem die später beschriebene automatische Sicherung per Script) ist ein Feature von Windows Server und muss als solches also erst installiert werden. Geht dazu in den Server-Manager, auf “Features hinzufügen” und installiert die komplette “Windows Server-Sicherungsfeatures”. Für die Befehlszeilenvariante muss auch “Windows Powershell” mitinstalliert werden.

Mit diesem Feature sind Backups schnell erstellt, manuell oder auch automatisch. Die automatische Erstellung von Server Backups wird durch einen simplen “Sicherungszeitplan” ermöglicht. Bei der Erstellung eines solchen Plans stehen allerdings nur 2 Zeitspannen zur Verfügung: täglich und mehrmals täglich.
1x1.trans Windows Server 2008: automatisches Backup per Batch
Für eine seltenere Sicherung ist keine Option vorgesehen. Möchte man nun doch flexibler Backups erstellen ist ein Workaround angebracht.
1x1.trans Windows Server 2008: automatisches Backup per Batch

Meine spontane Idee war ein Backup per Batch und diese dann per Taskplaner timen.

Wie erstellt man ein Backup per Batch? Hier der Befehl:

wbadmin start backup -backuptarget:F: -include:C:,D: -vssfull -quiet

-backuptarget bestimmt das Ziel, -include die zu sichernden Quellen, -quiet besagt ohne UI und -vssfull gibt an, dass mit dem Volume Shadow Copy Service die History aller Dateien aktualisiert wird.
Mehr Infos erhaltet ihr mit wbadmin start backup /?.
Backups die mit Hilfe der Batch erstellt wurden werden auch im “Windows Server Backup” Tool gelistet und können dort auch ganz normal benutzt werden. Also es geht keinerlei Funktionalität durch die CMD verloren.
1x1.trans Windows Server 2008: automatisches Backup per Batch

Die erstellte Batch können wir jetzt per “Aufgabenplanung” automatisch ausführen lassen, in meinem Fall einmal wöchentlich.
Um eine etwas bessere Kontrolle über das Ergebniss der Sicherung zu haben empfehle ich die Batch auszubauen:

set logfile="C:\backuplog.txt"
echo ########################## %computername%: %date% - %time% >> %logfile%
echo. >> %logfile%
wbadmin start backup -backuptarget:F: -include:C:,D: -vssfull -quiet >> %logfile%
echo. >> %logfile%
echo ########################## %computername%: %date% - %time% >> %logfile%

Wir setzen den Pfad zu einer Logdatei in die Variable logfile und geben vor dem Backupvorgang und danach einige Informationen dazu. An unsere bekannte Zeile 4 hängen wir die Umleitung >> %logfile% an.
Die Textdatei sieht nach einem Backupvorgang ungefähr so aus:
1x1.trans Windows Server 2008: automatisches Backup per Batch

Der Aufgabenplaner sollte die Batch nach Plan ausführen, diese sollte ein tolles Backup erstellen und den Vorgang in die Logdatei schreiben und das Server Backup Tool sollte die Sicherung erkennen.
Links die manuellen Tests und rechts das Backup am Samstag.
1x1.trans Windows Server 2008: automatisches Backup per Batch 1x1.trans Windows Server 2008: automatisches Backup per Batch

Das wars! Vielleicht etwas unprofessionell aber es funktioniert 1A!

Update: Ich habe das Script noch weiter ausgebaut und möchte euch das natürlich nicht vorenthalten. Das Sicherungsziel wird jetzt über eine Variable angesprochen. Diese wird erst auf Ort 1 gesetzt und falls dieser – aus welchen Grund auch immer – nicht erreichbar ist wird ein Ort 2 als Alternative gesetzt. Hier ließen sich natürlich weitere Alternativen einbauen, es sollte aber eher die Bemühung es Admins sein, einen zuverlässigen Ort zu arrangieren 1x1.trans Windows Server 2008: automatisches Backup per Batch
Das Backup wird jetzt mit -allCritical und -systemState ausgeführt und sicher somit systemkritische Dateien aller Art mit.
Update 20.07.2011: -systemState gibt es nicht mehr!? Vorerst entfernt.
Bei einem Fehlschlag wird die Logdatei entsprechend geschrieben und eine Alarmmail via Batch Mailer an die Admins abgesetzt. Wie ihr diesen Batch Mailer aufsetzt steht hier.

@echo on
if not exist Z: net use Z: \\server\*** /user:***
set logfile="C:\backuplog.txt"
::error mail reciever
set mailto=***@***.***
for /f "skip=1 tokens=2 delims=[]" %%* in ('ping.exe -n 1 -4 %computername%') Do (set "IP=%%*") 
for /f "tokens=1,2,3,4 delims=." %%a in ("%IP%") do set IPb1=%%a&set IPb2=%%b&set IPb3=%%c&set IPb4=%%d

set target=\\server\***

echo ########################## %computername%: %date% - %time% >> %logfile%
echo. >> %logfile%
wbadmin start backup -backuptarget:%target% -include:C: -vssfull -allCritical -quiet >> %logfile%
set backuperrorlevel=%errorlevel%
if "%backuperrorlevel%"=="0" (goto end) else (goto fehler)

:fehler
echo. >> %logfile%
echo. >> %logfile%
echo ______________________________ >> %logfile%
echo ****************************** >> %logfile%
echo ****************************** >> %logfile%
echo  Ein Fehler ist aufgetreten!!  >> %logfile%
echo ****************************** >> %logfile%
echo ****************************** >> %logfile%
echo Errorlevel: %backuperrorlevel% >> %logfile%
echo. >> %logfile%
echo. >> %logfile%
:: Batch Mailer
:: http://hannes-schurig.de/23/06/2011/batch-mailer-email-aus-batch-script-schicken/
:: sendet eine Mail an und meldet fehlgeschlagenes Backup
start "iexplore" "http://stuff.hannes-schurig.de/mailer.php?******&contactname=.%IPb4% %computername%&subject=Backup fehlgeschlagen &email=***@***.***&message=Das woechentliche automatische Backup auf: .%IPb4% "%computername%" ist fehlgeschlagen || Errorlevel: %backuperrorlevel%&mailto=%mailto%"
::20 Sekunden warten und Internet Explorer Fenster schließen
ping 127.0.0.1 -n 20
taskkill /im "iexplore.exe"
ping 127.0.0.1 -n 5

:end
echo. >> %logfile%
echo ########################## %computername%: %date% - %time% >> %logfile%
echo ########################### Errorlevel: %backuperrorlevel% >> %logfile%
echo. >> %logfile%
exit

To-Do: Logdatei beim Fehler als E-Mail Anhang mitschicken. Keine Ahnung, wie ich das mache. Ideen?