Automatisches Datei-Backup per Powershell-Skript

Die Powershell ist in Windows 10 die Nachfolgerin der Eingabeaufforderung CMD. Sie bietet weit mehr Möglichkeiten als die CMD, indem sie zur Automatisierung, Konfiguration und Verwaltung von Windows dient und eine eigene Skriptsprache unterstützt. Mit einem passenden Skript können Sie zum Beispiel alle Dateien eines Ordners auf ein anderes Laufwerk oder Netzlaufwerk sichern.

Zugegeben: Für den Rechner zu Hause ist ein Datei-Backup per Powershell übertrieben. Dafür gibt es einfachere Methoden, etwa den CMD-Befehl robocopy . Wir zeigen das Vorgehen dennoch, damit interessierte Anwender einen ersten Eindruck von einem Powershell-Skript bekommen. Das geht sehr gut mit dem Backup-Skript des IT-Spezialisten Michael Seidl.

So geht’s: Zunächst müssen Sie das Powershell-Skript BackupScript.ps1 an Ihre Ordnerstruktur anpassen. Laden Sie das Skript dafür auf Ihren PC, etwa in den Ordner C:\Skripte. Klicken Sie mit der rechten Maustaste darauf und wählen Sie „Bearbeiten“. So öffnen Sie das Skript in der Windows Powershell Integrated Scripting Environment (ISE) zur Bearbeitung. In der Version 1.5 des Skripts müssen Sie zumindest zwei Eingaben auf Ihren PC hin anpassen: das Backup-Ziel (Zeile 34, „$Destination“) und die Backup-Quelle (Zeile 38, „$BackupDirs“). Ändern Sie in beiden Zeilen die Beispielwerte. Beim Backup-Ziel ist „\\SVATHOME002\Backup$\NB BaseIT“, also ein Netzlaufwerk, voreingestellt. Sie können das auf ein Netzlaufwerk Ihrer Wahl oder auf ein anderes Laufwerk ändern, etwa „D:\Backup“. Bei der Backup-Quelle können Sie zum Beispiel „C:\Users\<Ihr Windows-Name>\“ eintragen, oder „C:\Daten“ – je nachdem, wo Sie Ihre Dateien speichern. 

Achtung: Das Backup-Skript berücksichtigt nur Dateien in Unterordnern! Sollten Sie Dateien einzeln direkt unter C:\Daten gespeichert haben, werden diese vom Skript nicht kopiert. 

Weitere Änderungen am Skript müssen Sie nicht unbedingt vornehmen. Es gibt aber noch ein paar interessante Parameter, zum Beispiel in der Zeile 37 mit der Variablen „$Versions“. Sie steht auf „15“ und gibt damit an, dass 15 Versionen Ihres Backups gesichert werden. 

Beachten Sie dabei, dass das Skript stets Komplettsicherungen und keine inkrementellen Backups erstellt. 

Weitere Parameter lassen sich bis zur Zeile 59 mit der Variablen „$EmailSMTP“ ändern. Danach sind keine Veränderungen im Skript mehr vorgesehen. 

So starten Sie das Skript: Aus Sicherheitsgründen erlaubt Microsoft keine Skripts, die per Doppelklick starten. Selbst in der Eingabe der Powershell sind fremde Skripts zunächst verboten. Der folgende Befehl zeigt, wie Sie das für dieses Skript umgehen: Starten Sie eine Powershell etwa per Klick mit der rechten Maustaste auf das Windows-Symbol und der Wahl von „Windows Powershell“. Geben Sie dann diesen Befehl ein: 

powershell.exe -Executionpolicy Bypass -File „C:\Skripte\Backup Script.ps1“ 

Mit den Befehlen „-Executionpolicy Bypass -File” umgehen Sie die Sicherheitsbeschränkungen, die Windows für die Powershell eingebaut hat. 

Alternativ können Sie in einer Powershell mit Administratorrechten die Beschränkung von fremden Skripts ausschalten. Den aktuellen Stand der Rechte zeigt der Befehl Get-Execution Policy an. Standardmäßig wird hier der Wert „Restricted“ ausgegeben. Mit dem Befehl Set-ExecutionPolicy Unrestricted -force können Sie fremde Skripte erlauben. Da das allerdings die Sicherheit Ihres Systems schwächt, ist diese Einstellung nur in wenigen Ausnahmen empfehlenswert.