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

Printed on: April 16, 2024 at 17:04 o'clock

Member: Mad-Eye
Mad-Eye Dec 10, 2010 at 07:57:22 (UTC)
Goto Top
Hi,

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

Gruß
Mad-Eye
Member: zubbel
zubbel Dec 10, 2010 at 08:03:17 (UTC)
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
Member: Mad-Eye
Mad-Eye Dec 10, 2010 at 08:23:14 (UTC)
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
Member: zubbel
zubbel Dec 10, 2010 at 08:40:58 (UTC)
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.
Member: MiniStrator
MiniStrator Dec 10, 2010 at 09:19:44 (UTC)
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ß
Member: BigWim
BigWim Dec 10, 2010 at 09:32:10 (UTC)
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
Member: zubbel
zubbel Dec 10, 2010 at 10:02:33 (UTC)
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 Dec 10, 2010 at 10:17:50 (UTC)
Goto Top
Hallo zubbel!

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

Gruß Dieter
Member: BigWim
BigWim Dec 10, 2010 at 10:30:27 (UTC)
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]
Member: MiniStrator
MiniStrator Dec 10, 2010 at 10:34:18 (UTC)
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...