Server 2008 R2 Aufgabenplanung - Skript funktioniert nicht richtig.
Hallo und hilfe!
Ich habe folgendes Problem:
Ich habe Skript geschrieben, welches 3 Dateien (virtuelle Festplatten von Hyper-V) übers Netzwerk kopiert und anschließend eine E-Mail (mit blat.exe) versendet, wenn das Kopieren geklappt hat.
Quelle: "F:\VMs" auf "\\HYPER-V". Ziel: "D:\VMs" auf "\\BACKUPSERVER"
Wenn ich das Skript manuell in der CMD starte, läuft es normal durch und macht was es soll. Wenn ich das Skript über die Aufgabenplanung starte, kopiert es zwar, verschickt aber anschließend keine Benachrichtigung ob das Kopieren geklappt hat. Lediglich die erste Mail, dass der Server heruntergefahrn wird kommt an. Leider kann ich dann nicht sehen wo es genau aussteigt.
Details:
Das Script tut in Etwa folgendes:
- Eine E-Mail wird versendet dass der virtuelle Server heruntergefahren wird.
- Warte 10 Min.
- Virtuelle Computer werden heruntergefahren.
- Netzlaufwerk wird verbunden.
- Dateien werden Kopiert.
- Virtuelle Computer werden gestartet
- Es wird 40 Min gewartet (...bis der Exchange-Server gestartet ist)
- E-Mail ob das Kopieren geklappt hat wird versendet.
Gestartet wird das Script über die Aufgabenplanung als Domänen Admin. Das Programm lautet "%systemroot%\system32\cmd.exe" und der Parameter "/c f:\scripts\vmbackup.cmd"
Hier das Script:
Meine Vermutung ist, dass es vielleicht an dem GOTO oder dem WAIT liegt?
Hat jemand eine Idee, woran das liegen kann?
Würde mich über Tips und Denkanstöße freuen!
Gruß
Filou
Ich habe folgendes Problem:
Ich habe Skript geschrieben, welches 3 Dateien (virtuelle Festplatten von Hyper-V) übers Netzwerk kopiert und anschließend eine E-Mail (mit blat.exe) versendet, wenn das Kopieren geklappt hat.
Quelle: "F:\VMs" auf "\\HYPER-V". Ziel: "D:\VMs" auf "\\BACKUPSERVER"
Wenn ich das Skript manuell in der CMD starte, läuft es normal durch und macht was es soll. Wenn ich das Skript über die Aufgabenplanung starte, kopiert es zwar, verschickt aber anschließend keine Benachrichtigung ob das Kopieren geklappt hat. Lediglich die erste Mail, dass der Server heruntergefahrn wird kommt an. Leider kann ich dann nicht sehen wo es genau aussteigt.
Details:
Das Script tut in Etwa folgendes:
- Eine E-Mail wird versendet dass der virtuelle Server heruntergefahren wird.
- Warte 10 Min.
- Virtuelle Computer werden heruntergefahren.
- Netzlaufwerk wird verbunden.
- Dateien werden Kopiert.
- Virtuelle Computer werden gestartet
- Es wird 40 Min gewartet (...bis der Exchange-Server gestartet ist)
- E-Mail ob das Kopieren geklappt hat wird versendet.
Gestartet wird das Script über die Aufgabenplanung als Domänen Admin. Das Programm lautet "%systemroot%\system32\cmd.exe" und der Parameter "/c f:\scripts\vmbackup.cmd"
Hier das Script:
@echo off
cls
echo HYPER-V SICHERUNG WIRD INITIALISIERT...
echo.
echo BENACHRICHTIGUNG WIRD PER E-MAIL VERSENDET.
f:\scripts\blat "f:\scripts\Mail-Start.txt" -to info@domain.local -server SBS -subject "Datensicherung: Server wird heruntergefahren."
echo.
echo.
echo ES WIRD 10 MINUTEN GEWARTET, BIS DER VORGANG VORTGESETZT WIRD...
REM wait 600000
echo.
echo.
echo NETZWERKVERBINDUNGEN WERDEN HERGESTELLT...
echo.
net use y: /delete
net use y: \\backupserver\vms
echo.
echo.
echo VIRTUELLE COMPUTER WERDE HERUNTERGEFAHREN...
echo.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe f:\scripts\StartStopVms.ps1 f:\scripts\VmNamesStop.txt 1
echo.
echo.
echo STARTE KOPIERVORGANG...
echo.
goto NEXTA
echo KOPIERE "Windows XP"...
echo.
xcopy /y "f:\vpc\WinXPAppSrv\Windows XP Application Server.vhd" "y:\WinXPAppSrv\Windows XP Application Server.vhd" /e
if %errorlevel% == 0 goto NEXTA
if %errorlevel% == 1 goto FAILED
if %errorlevel% == 2 goto FAILED
if %errorlevel% == 3 goto FAILED
if %errorlevel% == 4 goto FAILED
if %errorlevel% == 5 goto FAILED
:NEXTA
echo.
echo.
echo KOPIERE "Datenfreigaben"...
echo.
xcopy /y "f:\vpc\Win2008DomCon\Datenfreigaben.vhd" "y:\Win2008DomCon\Datenfreigaben.vhd" /e
if %errorlevel% == 0 goto NEXTB
if %errorlevel% == 1 goto FAILED
if %errorlevel% == 2 goto FAILED
if %errorlevel% == 3 goto FAILED
if %errorlevel% == 4 goto FAILED
if %errorlevel% == 5 goto FAILED
:NEXTB
echo.
echo.
echo KOPIERE "Win 2008 Domaenenc."...
echo.
xcopy /y "f:\vpc\Win2008DomCon\Win 2008 Domaenencontroller.vhd" "y:\Win2008DomCon\Win 2008 Domaenencontroller.vhd" /e
if %errorlevel% == 0 goto OK
if %errorlevel% == 1 goto FAILED
if %errorlevel% == 2 goto FAILED
if %errorlevel% == 3 goto FAILED
if %errorlevel% == 4 goto FAILED
if %errorlevel% == 5 goto FAILED
:OK
echo.
echo.
echo DIE SICHERUNG WURDE ERFLOGREICH ABGESCHLOSSEN.
echo.
echo VIRTUELLE COMPUTER WERDEN GESTARTET...
echo.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe f:\scripts\StartStopVms.ps1 f:\scripts\VmNamesStart.txt 0
echo.
echo.
echo ES WIRD GEWARTET, BIS ALLE VIRTUELLEN COMPUTER GESTARTET SIND.
echo WARTE 40 MINUTEN...
echo.
wait 600000
wait 600000
wait 600000
wait 600000
echo.
echo.
echo SENDE BENACHRICHTIGUNG...
f:\scripts\blat "f:\scripts\Mail-OK.txt" -to info@domain.local -server sbs2008 -subject "Sicherung auf Hyper-V-Server erfolgreich."
goto END
:FAILED
echo.
echo.
echo. DIE SICHERUNG IST FEHLGESCHLAGEN.
echo.
echo VIRTUELLE COMPUTER WERDEN GESTARTET...
echo.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe f:\scripts\StartStopVms.ps1 f:\scripts\VmNamesStart.txt 0
echo.
echo.
echo ES WIRD GEWARTET, BIS ALLE VIRTUELLEN COMPUTER GESTARTET SIND...
echo WARTE 40 MINUTEN...
echo.
wait 600000
wait 600000
wait 600000
wait 600000
echo.
echo.
echo SENDE BENACHRICHTIGUNG...
f:\scripts\blat "f:\scripts\Mail-Failed.txt" -to info@domain.local -server sbs2008 -subject "WARNUNG: Sicherung auf Hyper-V-Server felgeschlagen."
goto END
:END
echo.
echo.
echo DER VORGANG IST BEENDET.
Meine Vermutung ist, dass es vielleicht an dem GOTO oder dem WAIT liegt?
Hat jemand eine Idee, woran das liegen kann?
Würde mich über Tips und Denkanstöße freuen!
Gruß
Filou
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153679
Url: https://administrator.de/contentid/153679
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo filou204!
Versuch es mit der "sleep.exe" aus den Windows Server 2003 Resource Kit Tools ...
Grüße
bastla
Versuch es mit der "sleep.exe" aus den Windows Server 2003 Resource Kit Tools ...
Grüße
bastla
Hallo filou204!
Zur Sicherheit könntest Du noch für "sleep" (oder auch "wait") den vollständigen Pfad angeben (und das "
Grüße
bastla
[Edit] Hat sich jetzt zeitlich überschnitten, aber: Selber rausfinden ist ohnehin schöner ... [/Edit]
Zur Sicherheit könntest Du noch für "sleep" (oder auch "wait") den vollständigen Pfad angeben (und das "
echo off
" vorübergehend in ein "echo on
" verwandeln, um den Ablauf besser kontrollieren zu können) ...Grüße
bastla
[Edit] Hat sich jetzt zeitlich überschnitten, aber: Selber rausfinden ist ohnehin schöner ... [/Edit]