m3rlin
Goto Top

Automatischer Restore via NTBackup ?

Hallo zusammen,

habe mal eine vll. eher blöde Frage:
Ist es eigentlich möglich, mit NTBackup einen automatischen bzw. batch gesteuerten Restore zu machen ?

Ich weis, das es eigentlich nicht Sinn der Sache ist, einen Restore automatisch auszuführen aber ich experimentiere gerade ein wenig rum.
Und zwar mache ich auf dem einen Server ein backup und dieses kopiere ich dann auf einen 2. Server, der via vpn verbunden ist. Soweit geht das auch. Auf dem 2. Server möchte ich dann das Backup des 1. Servers einspielen.
Beide Server sind vom Windows her identisch. (Name, IP etc.)

Ich weis, das es Software gibt, die einen abgleich machen können aber mir geht es eher darum, ob der restore auch batch gesteuert gestartet werden kann.


Vielen Dank für eure Mühe

Content-ID: 98070

Url: https://administrator.de/forum/automatischer-restore-via-ntbackup-98070.html

Ausgedruckt am: 23.12.2024 um 05:12 Uhr

leunam
leunam 29.09.2008 um 13:34:40 Uhr
Goto Top
Hallo M3rlin,

du hast Glück - gerade letzte Woche habe ich hierfür ebenfalls eine Lösung gesucht und auch gefunden. Du kannst das ganze sehr schön mit PowerShell machen.

Das Problem liegt hierbei ja eindeutig an der GUI des NTBackup, da es für die Restore Methode des NTBackups keine command-line Funktion gibt.
PowerShell ist echt eine tolle Sache, du kannst es dir kostenlos runterladen und hier im Forum findest du super Einsteiger Tutorials. Gerade wenn du als Admin tätig bist, lohnt sich das einarbeiten in PS, da es um einiges mächtiger ist als Batch oder CMD. Ich bin ein großer Fan von VBS und WSF, aber PS übertrifft alles was ich bisher gemacht habe, kann ich sehr empfehlen.

Hier mal die Einsteiger-Hilfen für PS:


Zu deinem Problem jetzt ganz konkret:

Du startest also das NTBackup Wizard mit dem Befehl:
# open item
invoke-item 'C:\Windows\System32\ntbackup.exe'  

Dann holst du dir das Fenster
# get the NTBackup window
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")  
[Microsoft.VisualBasic.Interaction]::AppActivate("Backup or Restore Wizard")  

und anschließend schickst du mit dem Befehl SendKeys nacheinander die richtigen Befehle, wählst dein Backup aus und startest das Restore.
Hier mal meine Funktion der Restore Steuerung (kann bei dir natürlich anders sein, musst du halt entsprechend anpassen)
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")  
write-host "`nAnswer Restore Wizard"  
# Next
[System.Windows.Forms.SendKeys]::SendWait("%N")  
write-host "--> Next"  
# Choose "Restore" 
[System.Windows.Forms.SendKeys]::SendWait("{DOWN}")  
write-host "--> Choose Restore"  
# Next
[System.Windows.Forms.SendKeys]::SendWait("%N")  
write-host "--> Next"  
# Choose Backup.bkf
[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}{TAB}")  
[System.Windows.Forms.SendKeys]::SendWait("{RIGHT}{DOWN}{RIGHT}{DOWN}")  
write-host "--> Choose Backup.bkf"  
# Select Backup.bkf with "Space" 
[System.Windows.Forms.SendKeys]::SendWait(" ")  
write-host "--> Select Backup.bkf"  
# Next
[System.Windows.Forms.SendKeys]::SendWait("%N")  
write-host "--> Next"  

[System.Threading.Thread]::Sleep(1000)			# wait 1sec

# Finish
#[System.Windows.Forms.SendKeys]::SendWait("{BREAK}") 
[System.Windows.Forms.SendKeys]::SendWait(" ")  
write-host "--> Finish"  

write-host "--> Wait Until its finished...(20sec.)"  
[System.Threading.Thread]::Sleep(20000)			# wait 20sec

# Close After Finishing
[System.Windows.Forms.SendKeys]::SendWait("%C")  
write-host "--> Close"  

So funktioniert es bei mir, ich habe dann noch ein paar Pausen eingefügt, weil das NTBackup ab und zu mal etwas braucht, bis es sich öffnet oder auch das Restore natürlich etwas Zeit benötigt. Ich habe hierbei jetzt mal eine Wartezeit von 20sec eingetragen.

Ich hoffe ich konnte dir weiterhelfen!
Lg, Manuel
M3rlin
M3rlin 29.09.2008 um 14:42:27 Uhr
Goto Top
Hallo Manuel,

Danke Dir erstmal für Dein ausführliches Beispiel !
So etwas änliches habe ich bei dem Tool TerraTerm (änlich wie putty) gehabt, wenn man es automatisieren wollte.

Ich denke auch, das sich seine Einarbeitung in Power Shell lohnt.
Ich werde es mal ausprobieren und bescheid geben

Danke Dir nochmal

Kai
M3rlin
M3rlin 29.09.2008 um 17:33:44 Uhr
Goto Top
Hallo,

habe mal Dein script umgesetzt und die bkf Dateien angepasst.
Leider klappt die ganze Sache nicht so richtig.
Bekomme immer folgenden Fehler: Exception calling "AppActivate" with "1" argument(s): "Process 'Backup or Restore Wizard' was not found."
At c:\sicherung.ps1:6 char:49

back-to-top[Microsoft.VisualBasic.Interaction]::AppActivate <<<< ("Backup or Restore Wizard")


Egal ob ich es auf Deutsch oder Englisch schreibe.
Habe auch den Modus,immer im Assistentenmodus starten, gewechselt, hat aber auch nichts gebracht.
Was mache ich da falsch ?

Danke schon mal im voraus

Kai
leunam
leunam 01.10.2008 um 09:50:40 Uhr
Goto Top
Hi,

sorry, dass meine Antwort etwas gebraucht hat, aber war gestern nicht im Büro.

Deine Fehlermeldung klingt, als würde er das Fenster NTBackup nicht finden...der Text in den Klammern sollte dem Text der Titelleiste deine NTBackup-Fensters entsprechen. Bei mir ist das "Backup or Restore Wizard". Ich verwende hauptsächlich den Wizard, da dieser viel einfach ist. Vielleicht dauert der Wizard bei dir auch etwas länger, als bau doch einfach mal noch ne Pause zwischen aufmachen (Invoke-Item "ntbackup.exe) und "..AppActivate" - keine Ahnung ne Sekunde oder zwei sollten reichen. Das musst du natürlich in ms angeben, also 1000 oder 2000.

Hoffe das hilft dir weiter.
Lg, Manu
M3rlin
M3rlin 01.10.2008 um 12:57:55 Uhr
Goto Top
Hallo MAnu,

kein Ding.
Habe jetzt die Meldung weg. A: mein ntbackup ist auf Deutsch, dementsprechend sind die Fenster auch auf Deutsch face-smile und B: habe ich eine Pause eingefügt.
Jetzt bekomme ich zwar keine Fehlermeldung mehr aber es klappt trotzdem nicht. Die Sendkey Befehle will er nicht annehmen.
Habe gestern mehrere Stunden mich nach powershell erkundigt aber nicht so das Richtige gefunden.
Habe es jetzt mal auf eine andere Weise probiert:
Und zwar habe ich noch ein altes Tool namens scriptit gefunden. Ja und damit klappt es gut. Der Umfang des Tools ist nicht so groß aber ich habe nur 7 Zeilen gebraucht.

Hier mal ein Beispiel anhand VNC:
[SCRIPT]
run=D:\Programme\UltraVNC\vncviewer.exe
Verbindung={TAB}#{ENTER}
VNC Authentisierung=Passwort#{ENTER}

Trotzdem Danke an Dich, ich werde mich aber trotzdem mal mit powershell auseinandersetzen.
BtW welche Version nutzt Du denn ? 1.0 oder 2 ?

Kai
leunam
leunam 01.10.2008 um 14:31:32 Uhr
Goto Top
Zitat von @M3rlin:
Trotzdem Danke an Dich, ich werde mich aber trotzdem mal mit
powershell auseinandersetzen.
BtW welche Version nutzt Du denn ? 1.0 oder 2 ?


Also ich nutze die Version 2...da gibt es auch nen schönen Editor mit dazu, allerdings musst du dazu noch .NET 3.0 installieren.

Viel Spaß beim weiter-basteln.
Lg, Manu