hi all,
ich habe dein ein für mich seltsames verhalten bei einem meiner scripte.
ich sichere täglich die registry eines rechners, schreibe diese in ein verzeichnis das den aktuellen wochentag als name bekommt.
ausnahme ist der jeweilige Donnerstag der in ein verzeichnis mit dem aktuellen datum bekommt (und archiviert wird). d.h. ich habe eine revolvierende sicherung mit einer jeweiligen Wochensicherung. ---- das funzt auch.
den programmpfad, den sicherungspfad und die parameter übergebe ich mittels einer ini datei. ---- das funzt auch
ein kurzes protokoll (erfolg oder fehlerfall) schreibe ich auch in diese ini datei zurück ---- das funzt auch wenn ich das compilierte script (exe) per doppelklick ausführe.
und jetzt zu dem problem:
wird das compilierte script aber über den win7 taskscheduler ausgeführt klappt das schreiben der protokoll einträge nicht.
kann mir jemand vielleicht sagen, woran das liegt (btw. die ntfs rechte auf das verzeichnis und die datei (ini) sind full control everyone)
liebe gruesse
ugt100
Spoiler anzeigen
#include <Date.au3>
#include <file.au3>
Dim $cde_param, $cde_prgpath, $cde_sikpath, $cde_tagname, $cde_weekday, $cde_LastRun, $cde_Drive, $cde_filedate
FileInstall("RegLocalSikSettings.ini", "RegLocalSikSettings.ini") ;INI-Datei editierbar
If FileExists(".\RegLocalSikSettings.ini") Then ;If INI-Datei vorhanden, sonst Cancel
$cde_prgpath = IniRead("RegLocalSikSettings.ini", "Settings", "cde_prgpath", "NichtGefunden") ;Auslesen INI-Datei
$cde_sikpath = IniRead("RegLocalSikSettings.ini", "Settings", "cde_sikpath", "NichtGefunden")
$cde_param = IniRead("RegLocalSikSettings.ini", "Settings", "cde_param", "NichtGefunden")
$cde_Drive = StringMid($cde_sikpath, 2, 3)
$cde_LastRun = " " & @MDAY & "-" & @MON & "-" & @YEAR & " " & @HOUR & ":" & @MIN ;Last Run Datum
IniWrite("RegLocalSikSettings.ini", "History", "cde_LastRun", $cde_LastRun) ;in INI-Datei schreiben
If FileExists($cde_prgpath) Then ;If Programm gefunden, sonst Cancel
If DriveStatus($cde_Drive) = "READY" Then ;If Ziel vorhanden, sonst Cancel
MsgBox(64,"Registry sichern", "Start der Sicherung - einen Augenblick bitte ...",2)
$cde_weekday = _DateToDayOfWeekISO(@YEAR, @MON, @MDAY) ;Berechnung Wochentag
If $cde_weekday = "1" Then ;tägl. Sicherung pro Wochentag
$cde_tagname = "Montag" ;Zyklus = 1 Woche
ElseIf $cde_weekday = "2" Then ;danach jeweiliges Überschreiben
$cde_tagname = "Dienstag"
ElseIf $cde_weekday = "3" Then
$cde_tagname = "Mittwoch"
ElseIf $cde_weekday = "4" Then
$cde_tagname = "#date#" ;Ausnahme 1 wöchentl. Sik
;~ $cde_tagname = "Donnerstag" ;mit Tagesdatum
ElseIf $cde_weekday = "5" Then
;~ $cde_tagname = "#date#"
$cde_tagname = "Freitag"
ElseIf $cde_weekday = "6" Then
$cde_tagname = "Samstag"
ElseIf $cde_weekday = "7" Then
$cde_tagname = "Sonntag"
EndIf
$cde_sikpath1 = $cde_sikpath & $cde_tagname &'" ' ;Erzeugen Verzeichnis für SIK entweder
If $cde_tagname = "#date#" Then ;Verz. 'wöchentliche SIK' (Datumsangabe)
$cde_filedate = StringMid($cde_sikpath & "\" & StringRight(@YEAR,2) & "-" & @MON & "-" & @MDAY & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".txt", 2, 100)
Else ;oder Verz. 'tägl. SIK' (Wochentagsangabe)
$cde_filedate = StringMid($cde_sikpath & $cde_tagname & "\" & @YEAR & "-" & @MON & "-" & @MDAY & ".txt", 2, 100)
EndIf
ShellExecuteWait($cde_prgpath, $cde_sikpath1 & $cde_param) ;Aufruf ERUNT
Sleep(1000)
IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " OK") ;Status in INI-Datei schreiben (OK)
IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", "")
FileOpen($cde_filedate, 10) ;LogFile erzeugen im SIK-Verz.
FileWriteLine($cde_filedate, "Registry Sicherung vom: " & @MDAY & "-" & @MON & "-" & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC)
FileClose($cde_filedate) ;Datum und Uhrzeit ins LogFile schreiben
Else
MsgBox(16,"LW nicht gefunden", ' Das Ziel-LW ( ' & StringUpper($cde_Drive) & ' ) wurde nicht gefunden.' & @CRLF & @CRLF & " Der Vorgang wird abgebrochen - es erfolgt keine Sicherung !")
IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " Abbruch") ;Fehlerfall 'Ziel-LW' nicht gefunden
IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", " Ziel-LW nicht gefunden")
EndIf
Else
MsgBox(16,"Programm nicht gefunden", ' Das Registry-Backup Programm (ERUNT) wurde nicht gefunden.' & @CRLF & @CRLF & " Der Vorgang wird abgebrochen - es erfolgt keine Sicherung !")
IniWrite("RegLocalSikSettings.ini", "History", "cde_Status", " Abbruch") ;Fehlerfall 'Bkp-Prg' nicht gefunden
IniWrite("RegLocalSikSettings.ini", "History", "cde_Error", " ERUNT nicht gefunden")
EndIf
Else
MsgBox(16,"Datei nicht gefunden", ' Die Datei "RegLocalSikSettings.txt" wurde nicht gefunden.' & @CRLF & @CRLF & "Das Programm wird abgebrochen - es erfolgt keine Sicherung !")
EndIf ;Fehlerfall 'ZINI-Datei' nicht gefunden