zubbel
Goto Top

Script zu einem späteren Zeitpunkt starten

Hallo allesamt,

Habe ein bisschen Probleme mein Script zum laufen zu bringen. Die eigendliche Aufgabe sollte darin bestehen, dass das Script vom Loginscript aufgerufen wird, dann die aktuelle Systemzeit ausliest und z.B. 15 Minuten hinzu addiert und zu diesem neuen Zeitpunkt ein weiteres Script startet.

Zum System:
Das Loginscript liegt auf einem SBS 2008.
Das zweite Script liegt auf einem separaten NAS.
Die Clients sind mit Windows XP, Vista und Windows 7 installiert.


Also um meine Versuche gleich mal aufzuzählen:
- Als erstes habe ich den Versuch mit einem VBScript gemacht und dabei die Zeit mittels eines "wait" Befehls überbrückt. Das Script habe ich beim Kunden getestet, was zur Folge hatte, dass diverse Computer nicht mit dem Loginscript fertig wurden und daher gar nicht erst aufgestartet haben oder auch abgestürzt sind. Ich muss den Vorgang also irgendwie unterbrechen können, sodass er das Loginscript fertigstellt ohne auf zu warten bis der wait Befehl fertig ist.

- Danach bin ich auf den Batch von Biber gestossen (wirklich grosses Lob an dich, hat mir schon mal weitergeholfen face-smile ) mit dem ich über einen DOS Batch die Zeit addieren kann. Diese Zeit habe ich dann ganz einfach in einen AT-Befehl eingefügt, die Aufgabe wurde auch ohne Probleme gestartet nur wird dabei nichts gemacht.

- Schlussendlich habe ich jetzt versucht den Batch in ein VBScript zurückzuschreiben, dazu habe ich aber keinen Befehl gefunden mit dem ich das Script unterbrechen könnte, deshalb hab ich auf den DOS-Befehl "schtasks" zurück gegriffen. Aber leider funktioniert das ebenfalls nicht, oder besser gesagt nur zum Teil, da dies von Computer zu Computer variiert.


Hier mal mein Code (ist nicht viel aber sollte eigentlich die Aufgabe erfüllen):
AddTime = TimeSerial(0, 15, 0)
Pfad = "\\Server\Temp\inventarisieren.vbs"  
Set WshShell = WScript.CreateObject("WScript.Shell")  

WshShell.Run "schtasks.exe /delete /tn Script /f"  

NewTime = Time + AddTime

WshShell.Run "schtasks.exe /Create /sc Einmal /tn Script /st " & NewTime & " /tr " & Pfad &   



Nun hoffe ich dass mir jemand sagen könnte wo ich den Fehler mache oder ob jemand eine Idee hat das ganze besser umzusetzen. face-smile


Zubbel

Content-Key: 156694

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: Mad-Eye
Mad-Eye 10.12.2010 um 08:57:22 Uhr
Goto Top
Hi,

ich vermute mal es ist ein Copy&Paste-Error das die letzte Zeile nicht vollständig ist?

Gruß
Mad-Eye
Mitglied: zubbel
zubbel 10.12.2010 um 09:03:17 Uhr
Goto Top
Danke für die schnelle Antwort erstmal

Ne ich hab da ein "&" zuviel reingepostet, müsste eigentlich lauten:
WshShell.Run "schtasks.exe /Create /sc Einmal /tn Script /st " & NewTime & " /tr " & Pfad  

Gruss

Zubbel
Mitglied: Mad-Eye
Mad-Eye 10.12.2010 um 09:23:14 Uhr
Goto Top
Mmhhm

das schtasks.exe das du mit " anfängst sollte damit es ein Vollständiger Befehl ist auch mit " abschliesen damit WshShell.Run auch den Pfad als Parameter mitgibt.

WshShell.Run "schtasks.exe /Create /sc Einmal /tn Script /st " & NewTime & " /tr " & Pfad & "" so in etwa.

Gruß
Mad-Eye
Mitglied: zubbel
zubbel 10.12.2010 um 09:40:58 Uhr
Goto Top
Ich weiss nicht ob dass das einzige Problem ist. Wenn ich es manuell von meinem PC starte funktioniert es ohne Probleme und auch wenn es über das Loginscript aufgerufen wird funktioniert es bei manchen Computern, bei Anderen jedoch leider nicht.
Mitglied: MiniStrator
MiniStrator 10.12.2010 um 10:19:44 Uhr
Goto Top
Hi zubbel,

vielleicht hilft dir ein Ping weiter?

ping 1.0.0.0 -n 1 -w 900000

schickt einen Ping nach 1.0.0.0 (ist nicht erreichbar) und wartet 900000ms auf Antwort...

Gruß
Mitglied: BigWim
BigWim 10.12.2010 um 10:32:10 Uhr
Goto Top
Moin Zubbel,

wenn ich auch mal meinen Senf dazugeben darf.

Die eine Anforderung, die mal umsetzen mußte, habe ich mit der Delay.exe erledigt.

Markus
Mitglied: zubbel
zubbel 10.12.2010 um 11:02:33 Uhr
Goto Top
hi BigWim und MiniStrator

Werd beides mal ausprobieren, aber laufen beide Varianten nicht auf das gleiche raus wie mit der wait.exe?

Gruss
Mitglied: 76109
76109 10.12.2010 um 11:17:50 Uhr
Goto Top
Hallo zubbel!

TimeAdd = DateAdd("n", 15, Time)

Gruß Dieter
Mitglied: BigWim
BigWim 10.12.2010 um 11:30:27 Uhr
Goto Top
Das mit dem "Wait" habe ich überlesen.

Vom Prinzip ja, die "Kunst" ist ja, ein Script zu starten ohne das das Loginscript auf die Beendigung wartet.

Das schaffst Du nur, wenn Du eine "eigene" CMD aufmachst. Was dann für die Zeitverzögerung sorgt, ist "Geschmackssache". Sinngemäß müßtest Du also (ungetestet) solches probieren.

ohne Verzögerung - Loginscript läuft weiter
start MyScript.cmd

mit Verzögerung - Loginscript läuft weiter
start delay.exe <Parameter> MyScript.cmd

Markus


[edit] Tippfehler beseitigt [/edit]
Mitglied: MiniStrator
MiniStrator 10.12.2010 um 11:34:18 Uhr
Goto Top
Hi,

du könntest ja in deinem Loginscript ein zweites Batch aufrufen:

a.cmd:

tu dies
mach jenes

>> start b.cmd

tu das noch
mach nochwas

und in der b.cmd dann

ping blabla
jetzt mach das


//edit: Da war BigWim wohl schneller...