Ja, die Verwaltung von IIS-Backups kann mitunter knifflig sein, insbesondere bei der Migration von Daten zwischen Servern oder wenn man einfach auf Nummer sicher gehen will. Manchmal startet die Website gar nicht mehr oder verliert plötzlich Einstellungen. Zu wissen, wie man alles – Dateien, Konfigurationen, Zertifikate – korrekt sichert, erspart später viel Ärger. Dieser Leitfaden beschreibt einige Methoden, die sich in der Praxis bewährt haben, darunter die Verwendung integrierter Tools wie appcmd, PowerShell und sogar msdeploy. So sind Sie bestens gerüstet, falls etwas schiefgeht.
So sichern und stellen Sie IIS-Konfigurationen auf einem Windows Server wieder her
Sichern von IIS auf einem Windows Server
Eine korrekte IIS-Sicherung umfasst das Sichern Ihrer Website-Dateien, SSL-Zertifikate und Konfigurationseinstellungen. Denn seien wir ehrlich: Fällt ein Teil aus, ist das gesamte System gefährdet. Warum also Zeit mit manuellen Reparaturen verschwenden, wenn es einfache Möglichkeiten gibt, Ihre Konfiguration zu klonen? Auf manchen Servern reicht eine einfache Sicherungsmethode aus, auf anderen, insbesondere in komplexeren Umgebungen, ist ein vollständiger Snapshot empfehlenswert.
Ein häufiges Problem ist beispielsweise das manuelle Kopieren aller Dateien – also beispielsweise das Kopieren von %SystemDrive%\inetpub\wwwroot für statische Website-Dateien. Dabei werden jedoch weder SSL-Zertifikate noch IIS-Einstellungen berücksichtigt, die genauso wichtig sind. Um dies zu vermeiden, hilft in der Regel Folgendes:
Schritt 1: IIS-Websitedateien sichern
- Kopieren Sie einfach den gesamten Ordner inetpub\wwwroot, oder besser noch, verwenden Sie die Windows Server-Sicherung, um dieses Verzeichnis in Ihren Sicherungsplan einzubeziehen.
- In PowerShell können Sie die Datensicherung wie folgt skripten:
# Install Windows Server Backup if not installed Install-WindowsFeature -Name Windows-Server-Backup # Backup inetpub directory to a network share wbadmin start backup –backupTarget:\\srv-backup1\backup -include:c:\inetpub\wwwroot -vsscopy
So erhalten Sie eine vollständige Kopie Ihrer statischen Website-Dateien. Manchmal schlägt der erste Versuch bei bestimmten Konfigurationen fehl, aber ein erneuter Versuch oder ein Neustart hilft oft. Nicht immer absolut zuverlässig, aber besser als alles manuell zu machen.
Schritt 2: SSL-Zertifikate exportieren
- Die Liste der SSL-Zertifikate erhalten Sie mit dem Befehl ` netsh http show sslcert`. Dieser Befehl zeigt vorsichtshalber alle SSL-Bindungen an.
- Zum Exportieren der Zertifikate kommt PowerShell zum Einsatz:
dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system. IO. File]::WriteAllBytes( "\\srv-backup1\backup\$($_. Subject).pfx", ($_. Export('PFX', 'secret')) ) }
Dadurch werden PFX-Dateien mit Ihren SSL-Schlüsseln erstellt. Beachten Sie, dass bei manchen Exporten möglicherweise nicht alles perfekt funktioniert.Überprüfen Sie daher nach dem Import, ob die heruntergeladenen Zertifikate funktionieren. Stellen Sie außerdem sicher, dass Ihr Backup-Speicherort sicher ist – private Schlüssel sollten sorgsam behandelt werden.
Schritt 3: IIS-Konfiguration (Einstellungen) sichern
Dies wird oft vernachlässigt, ist aber entscheidend. Das integrierte Tool appcmd macht dies zum Kinderspiel.Öffnen Sie einfach eine Eingabeaufforderung als Administrator und wechseln Sie in das entsprechende Verzeichnis:
cd c:\Windows\system32\inetsrv
Führen Sie anschließend den Sicherungsbefehl aus:
appcmd add backup srv1-iis-backup-2022_03_10
Sie finden einen neuen Ordner unter C:\Windows\system32\inetsrv\backup, der all Ihre Konfigurationsdateien enthält, darunter applicationHost.config, administration.config und weitere wichtige XML-Dateien. Kopieren Sie einfach diesen gesamten Ordner in Ihren Sicherungsordner. Ganz einfach, aber vergessen Sie nicht, dies regelmäßig zu wiederholen – Windows überschreibt oder speichert diese Sicherungen automatisch im Verlauf, sodass Sie bei Bedarf darauf zurückgreifen können.
Auf neueren Servern (2016/2019) können Sie auch das PowerShell- Cmdlet Backup-WebConfiguration verwenden :
Backup-WebConfiguration -Name MyBackup202203
Dieser Befehl vereinfacht die Datensicherung und speichert die Einstellungen im Standard-Sicherungsordner, üblicherweise $env:Windir\System32\inetsrv\backup. Praktisch, wenn Sie lieber Skripte als Befehle verwenden.
Wiederherstellen einer IIS-Konfiguration auf einem anderen Windows Server-Host
Angenommen, Sie haben Ihr Backup irgendwo gespeichert – beispielsweise auf einer Netzwerkfreigabe oder einer externen Festplatte – und möchten es nun an einem anderen Ort wiederherstellen. Der Vorgang ist nicht kompliziert, erfordert aber etwas Aufmerksamkeit.
Kopieren Sie zunächst Ihren Sicherungsordner auf dem neuen Server nach c:\windows\system32\backup. Vergewissern Sie sich, dass die Sicherung in der Liste angezeigt wird:
appcmd list backup
Wenn Ihre Sicherung angezeigt wird, können Sie sie wie folgt wiederherstellen:
appcmd restore backup /stop:true srv1-iis-backup-2022_03_10
Die Option `/stop:true` weist IIS an, vor der Anwendung der Konfiguration herunterzufahren, wodurch häufig Fehler vermieden werden. Nach Abschluss des Vorgangs sollte Ihre Website mit allen vorherigen Einstellungen wieder erreichbar sein.
Alternativ können Sie die Wiederherstellung auch mit PowerShell durchführen, wenn Sie Backup-WebConfiguration verwendet haben :
Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10
Wenn Sie alte Backups löschen möchten – beispielsweise um etwas aufzuräumen – können Sie folgenden Befehl ausführen:
appcmd.exe delete backup BackupName
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring, versionstring
Stellen Sie außerdem sicher, dass alle benutzerdefinierten Anwendungspools oder SSL-Zertifikate auf dem neuen Server importiert bzw.verfügbar gemacht werden. Andernfalls kann es passieren, dass Ihre wiederhergestellte Website nicht mehr funktioniert.
Wenn Sie auf Automatisierung setzen, ist das Tool msdeploy eine solide Option. Sie können alle Ihre Websites und Konfigurationen auf einem Rechner zippen und auf einem anderen bereitstellen oder sogar inkrementelle Backups erstellen:
msdeploy -verb:sync -source:webServer, computername=192.168.100.112 -dest:package=c:\Backup\IIS\server1_iis_backup.zip
Oder sichern Sie einfach einzelne Websites/statische Dateien:
msdeploy –verb:sync –source:contentPath="site_name.com", computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip
Das ist manchmal etwas übertrieben, aber wenn Sie eine vollständige Kopie benötigen, hat sich diese Methode in der Praxis bewährt. Sie sollten nur darauf vorbereitet sein, anschließend Zertifikate zu importieren und Berechtigungen zu überprüfen, denn Windows macht es einem natürlich unnötig schwer.
Zusammenfassung
- Kopieren Sie Ihre Website-Dateien oder verwenden Sie die Windows Server-Sicherung, um %SystemDrive%\inetpub\wwwroot zu sichern.
- Exportieren Sie SSL-Zertifikate mit PowerShell oder netsh.
- Sichern Sie die IIS-Konfigurationen mit appcmd oder dem PowerShell- Befehl Backup-WebConfiguration.
- Konfigurationen können mit appcmd restore oder Restore-WebConfiguration wiederhergestellt werden.
- Ziehen Sie msdeploy für vollständige Website- oder Batch-Backups in Betracht, insbesondere bei Migrationen.
- Prüfen Sie stets die IIS-Versionskompatibilität und importieren Sie SSL-Zertifikate auf dem neuen Host.
Zusammenfassung
Die Sicherung von IIS mag zunächst mühsam erscheinen, aber sobald man den Umgang mit Tools wie appcmd, PowerShell oder msdeploy beherrscht, ist es gar nicht so schlimm. Zugegeben, manchmal ist das manuelle Kopieren von Dateien und Konfigurationen am einfachsten, doch Automatisierung und ein korrekter Export ersparen später viel Ärger. Es lohnt sich, regelmäßige Backups für Konfigurationen und Zertifikate einzurichten – man weiß nie, wann der Server Probleme macht. Ich hoffe, das hilft oder spart zumindest jemandem viel Zeit bei einer eventuellen Wiederherstellung.