stefanseiner
Goto Top

VB Skript startet nicht per Windows 10 Aufgabenplanung

Hallo zusammen,

ich habe ein VB Skript, welches ich manuel ausführen kann und es läuft ohne Probleme.
Das würde ich gerne alle 2 Tage automatisiert um 00 Uhr per Windows Aufgabenplanung starten - doch das klappt irgendwie nicht und ich finde den Fehler nicht.

Vielleicht könnt ihr mir hier helfen?

Windows 10 x64
"Stefanseiner" ist mein einziger, lokaler Benutzer.

screenshot_003

screenshot_004

screenshot_005

screenshot_006

screenshot_007



Hier der komplette Inhalt des Skripts (ist nicht von mir, ich nutze es nur)
'*******************************************************  
'  
'Download Script zum automatisierten Download des Wärme-  
'pumpenfiles Proclog von Luxtronic WP.Einbinung in Logon  
'Script oder scheduler.  
'  
'coded by Heiko Friedemann 2016 V1.0  
'  
'*******************************************************  
dim UrlWP, strStorePath, UserName 'as String  
dim intDeadLine 'as integer  
dim Dl 'as Boolean  

dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")  
dim bStream: Set bStream = createobject("Adodb.Stream")  

'Definition der Variablen  
'Pfad der Wärmepumpe und der Datei  
UrlWP = "http://192.168.1.27/NewProc"  
'Pfad wo die Datei abgelegt werden soll OHNE \ und Dateinamen  
strStorePath = "C:\Users\Stefanseiner\Desktop\Nextcloud\Haus Eppelborn\Infos+Projekte\Heizung\01 - Wärmepumpe\Logs"  
'Zeit nach der die Routine abgebrochen wird in Sekunden (hier 10 Minuten)  
intDeadLine = 600

'Ermittlung des Abbruchzeitpunkts  
TimerCorrection = 0
ForcedTermination = Timer + intDeadLine
if ForcedTermination > 86400 then 'Prüfen ob die Deadline in  
'den nächsten Tag fällt  
ForcedTermination = ForcedTermination - 86400
TimerCorrection = 86400
end if

set objFileSys=CreateObject("Scripting.FileSystemObject")  

'wiederholtes prüfen ob das Ablageverzeichnis da ist,  
'so lange bis es da ist oder die Deadline erreicht ist  
Do
if objFileSys.FolderExists(strStorePath & "\") Then exit do  
if Timer - TimerCorrection > ForcedTermination then
set objFileSys = Nothing
wscript.quit
End If
wscript.sleep (1000)
Loop

Set wsShell = WScript.CreateObject("WScript.Shell")  
UserName = wsShell.ExpandEnvironmentStrings("%USERNAME%")  

'Generieren des Dateinamens für die Ablage  
'im Format ProclogYYYYMMDD.dat  
Dateiname = "Proclog" & DatePart("yyyy", Now) & Right(String(2, "0") & _  
DatePart("m", Now), 2) & Right(String(2, "0") & _  
DatePart("d", Now), 2) & ".dta"  

'Die Schleife wird so lange durchlaufen bis die  
'Logdatei im Ordner ist oder die Deadline erreicht ist.  
Do
If Not objFileSys.FileExists(strStorePath & "\" & Dateiname) Then  
if Timer - TimerCorrection > ForcedTermination then
set objFileSys = Nothing
Set wsShell = Nothing
wscript.quit
End If
'die Wärmepumpendatei wird geöffnet und heruntergeladen  
xHttp.Open "GET", UrlWP, False  
xHttp.Send

'die Ablagedatei wird geöffnet, mit dem Ihnalt  
'der Wärmepumpendatei gefüllt und gespeichert.  
with bStream
.type = 1 '//binary  
.open
.write xHttp.responseBody
'Diese locale Zwischenspeicherung ist um einen Datenverlust  
'beim Verbindungsabbruch bei wackeligen Netzwerken zu vermeiden.  
.savetofile "C:\Users\" & UserName & "\" & Dateiname, 2 '//overwrite  
end with
'Umkopieren der lokalen Datei zum endgültigen Ablageplatz  
objFileSys.MoveFile "C:\Users\" & UserName & "\" & Dateiname, strStorePath & "\"  
dl = true 'die Downloadroutine ist durchlaufen  
wscript.sleep (10000) '10 Sekunden bis zum nächsten Versuch  
else
'wenn die Downloadroutine durchlaufen ist öffnet sich der Explorer mit dem Ablageverzeichnis  
'if dl then wsShell.Run ("Explorer.exe " & strStorePath )  
set objFileSys = Nothing
Set wsShell = Nothing
exit do
End If
Loop

Vielleicht findet jemand den Fehler und kann mir helfen?

Danke schonmal im Voraus

Stefan

Content-ID: 1823079278

Url: https://administrator.de/contentid/1823079278

Ausgedruckt am: 24.11.2024 um 05:11 Uhr

opsec2022
opsec2022 03.02.2022 um 15:59:55 Uhr
Goto Top
In die Aufgabe eine .cmd legen, welche das VB Skript aufruft.

Mehr dazu : stackoverflow.com/questions/29663480/windows-task-scheduler-doesnt-run-vbscript

Gruß

OpSec
em-pie
em-pie 03.02.2022 um 16:18:51 Uhr
Goto Top
Moin,

und lege das Script einmal - zur Sicherheit - irgendwo anders ab, z.B. auf C:\_scripts
Vom Desktop die Script starten zu lassen ist immer etwas... sagen wir mal... ungeschickt.

Gruß
em-pie
Stefanseiner
Stefanseiner 03.02.2022 um 18:22:44 Uhr
Goto Top
Zitat von @opsec2022:

In die Aufgabe eine .cmd legen, welche das VB Skript aufruft.

Mehr dazu : stackoverflow.com/questions/29663480/windows-task-scheduler-doesnt-run-vbscript

Oha, prima, danke


Zitat von @em-pie:
Vom Desktop die Script starten zu lassen ist immer etwas... sagen wir mal... ungeschickt.

OK, wieso?
Stefanseiner
Stefanseiner 04.02.2022 um 12:47:34 Uhr
Goto Top
So, ich habe nun eine Batchdatei zum AUfrufen der VB, aber es klappt noch immer nicht.
Wenn ich die Batch manuel ausführe dann läuft das VB Skript einwandfrei durch, aber über die Aufgabenplanung passiert nichts
opsec2022
opsec2022 04.02.2022 aktualisiert um 13:38:57 Uhr
Goto Top
Zitat von @Stefanseiner:

So, ich habe nun eine Batchdatei zum AUfrufen der VB, aber es klappt noch immer nicht.
Wenn ich die Batch manuel ausführe dann läuft das VB Skript einwandfrei durch, aber über die Aufgabenplanung passiert nichts

Hallo,

.bat oder .cmd ?
Wie rufst du das VB Skript auf, vorallem den Pfad ? ( Auf Quoting bei Leerzeichen im Namen achten )
Ereignis der letzten Ausführung, bei manuellem Start der Aufgabe?

alternativ

cmd
als Programm und
/c start cscript //nologo "c:\pfad\zu dem\vb skript.vb" 
als Parameter

Gruß OpSec
Stefanseiner
Stefanseiner 04.02.2022 um 14:20:15 Uhr
Goto Top
als .bat
Hier mal der Inhalt

echo "Started!"  
cscript.exe "WP_Log_Download.vbs"  
echo "Stopped!"  

Und hier der komplette Pfad zu beiden Dateien (.bat und .vbs liegen im selben Verzeichnis)
C:\Users\Stefanseiner\Desktop\Nextcloud\Haus Eppelborn\Infos+Projekte\Heizung\01 - Wärmepumpe\Logs
opsec2022
Lösung opsec2022 04.02.2022 um 14:34:33 Uhr
Goto Top
Hallo,

versuche es wie bereits erwähnt als .cmd, hat schon Wunder gewirkt.

alternativ wie o.g.

  • Programm : cmd
  • Argumente : /c start cscript //nologo "C:\Users\Stefanseiner\Desktop\Nextcloud\Haus Eppelborn\Infos+Projekte\Heizung\01 - Wärmepumpe\Logs\WP_Log_Download.vbs"

Ich rate hier lediglich ins Blaue. Das

Ereignis der letzten Ausführung, bei manuellem Start der Aufgabe?

wäre interessant

Gruß

OpSec
Stefanseiner
Stefanseiner 04.02.2022 um 15:49:49 Uhr
Goto Top
Soooo

Umbenennung der Batch in .cmd hat nichts gebracht, lies sich auch wieder manuell problemlos starten aber nicht über die Aufgabenplanung.

Der letzte Lösungsweg, Starten der CMD und Übergabe der .vbs als Argument scheint dann nun schlussendlich zum Erfolg geführt zu haben.
Zumindest per manuellem Start der Aufgabenplanung wird mir nun ein schonmal eine Logdatei der Wärmepumpe gezogen. Wenn das nun auch noch automatisiert alle 2 Tage klappt dann ist alles gut face-smile

Vielen Dank schonmal soweit für eure Hilfe

PS: weiß jemand, wieso der Aufgabenplaner solche Probleme hat?
Auf dem alten System mit Windows 7 x64 wurde dieselbe .vbs ohne Probleme ausgeführt
Stefanseiner
Stefanseiner 08.02.2022 um 21:42:38 Uhr
Goto Top
abschließende Rückmeldung:

funktioniert nun so, wie es soll face-smile
snipping_006.


Vielen Dank nochmal für eure Hilfe