Jump to content

2K - VB-Script mit Paramtern als geplanter Task


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallöchen,

 

ich hab jetzt schon bei Google und hier eine Weile ohne Ergebnis gesucht.

Mein Problem ist, daß ich ein VB-Script, das mit Parametern arbeitet, als geplanten Task ausführen möchte. Das Script läuft problemlos, wenn ich es manuell aufrufe, aber als Task wird es zwar gestartet, aber nicht abgearbeitet (manuell wird ntbackup gestartet, als Task bleibt ewig wscript hängen).

 

Den Task habe ich sowohl manuell als auch im Task-Planer mit dem User Administrator ausgeführt.

Wenn ich im Script das Auslesen der Parameter auskommentiere funktioniert das Script auch im Taskplaner, wenn ich es drinlasse bleibt der Task einfach hängen und arbeitet scheinbar nach der Zuweisung der Parameter zu den entsprechenden Variablen nicht mehr weiter.

 

Hier mal das Script:

 

Option Explicit

 

dim prog, sicherung, nummer, verzeichnis, conf_datei, save_name, args, FSO, write_args

 

Set prog = CreateObject("WScript.Shell")

Set args = WScript.Arguments

 

nummer = args(0)

verzeichnis = args(1)

conf_datei = args(2)

save_name = args(3)

 

'Netzlaufwerk verbinden, um Zugang zum Backup zu gewährleisten

prog.run "net use z: \\server\backup geheim /user:user /persistent:no",0

WScript.Sleep 3000

 

prog.run "C:\WINNT\system32\ntbackup.exe backup ""@C:\Scripts\" & conf_datei & ".bks"" /n """ _

& save_name & """ /d """ & save_name & """ /v:no /r:no /rs:no /hc:off /m normal /j """ & save_name & _

""" /l:s /f ""\\server\backup\" & nummer & "\" & verzeichnis & "\" & save_name & ".bkf"""

 

Der Aufruf bei diesem komischen Smiley im Quote steht für "hc: off" (ohne Leerzeichen).

 

Um sicherzugehen, daß es nicht an dem Aufruf von NTBackup oder dem Netzlaufwerk liegt, habe ich auch das schonmal komplett auskommentiert (also alles hinter der Parameterzuweisung) und stattdessen einen Part eingesetzt, der die Parameter in eine lokale Datei schreiben würde (was auch wieder manuell funktioniert aber nicht als Task).

 

Set FSO = CreateObject("Scripting.FileSystemObject")

Set write_args = FSO.OpenTextFile("c:\test.txt", 8, False)

write_args.WriteLine nummer & verzeichnis & conf_datei & save_name

write_args.Close

 

Der Aufruf des Scripts ist sowohl als Task als auch manuell folgender:

script.vbs 5 ts02 woche-1 test

 

Ich habe auch schon einiges probiert, allerdings bisher ohne Erfolg. Nur wenn ich die Zuweisungen für nummer, verzeichnis, conf_datei und save_name auskommentiere läuft das Script auch als Task.

Allerdings kann man z.B. Notepad mit dem Aufruf notepad.exe c:\test.txt als Task ausführen, es scheint also ein Problem beim Script zu sein, wenn Argumente im Script verarbeitet werden sollen.

 

Hat hier jemand evtl. eine Idee, woran das liegen könnte? Mir fällt da langsam nichts mehr ein.

Ich würde gerne nur ein Script für die ganzen Sicherungen nutzen, das ich mit Parametern entsprechend steuern kann und nicht für jede Sicherung ein neues Script hinsetzen (Scripts ohne Parameter funktionieren auch als Task), weil ich das etwas unschön finde.

 

Danke und Gruß,

Timo

Link zu diesem Kommentar

Hallöchen,

 

bin leider heute erst dazu gekommen wieder etwas daran zu testen.

Mit einem Domain Admin geht es auch nicht. Auch hier bleibt das Script hängen, wenn ich die Parameter-Zuweisungen im Script aktiv habe.

 

Hat sonst noch jemand eine Idee, warum es bei der manuellen Ausführung ohne Probleme läuft, aber nicht als Task?

 

Danke und Gruß,

Timo

Link zu diesem Kommentar

Hm, das ist ne Idee. Hätte ich gleich mal testen sollen. :)

 

Läuft zwar auch damit nicht, aber geht nen Schritt weiter. Zumindest bleibt es da nicht beim Zuweisen der Parameter hängen. Das Schreiben der Parameter funktioniert damit im Gegensatz zum direkten Aufruf.

Leider startet aber ntbackup dann noch nicht. Da muß ich wohl nochmal etwas weiter suchen.

Wäre zwar nicht so schön, wie ich es gerne hätte, aber besser als ein eigenes Script für jede Sicherung. :)

 

Danke und Gruß,

Timo

Link zu diesem Kommentar
  • 2 Wochen später...

habe das allergleiche Problem!

 

Option Explicit

dim IP

IP = 1
For IP = 1 To 254
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cmd /c shutdown -s -m \\10.254.10." & IP)
WScript.Echo IP
Next

 

Starte ich das Script über die Kommandozeile funktioniert es problemlos und alle Arbeitsstationen werden heruntergefahren.

Wenn ich es allerdings direkt anklicke oder über Batchdatei starte, wird zwar "WScript.Echo IP" ausgeführt, der shutdown-Befehl aber nicht!?

Link zu diesem Kommentar

ich habe momentan kein AD vor mir. Es gibt aber ein oder zwei entscheidende GPOs unter security (allow logon as a batch job oder so aehnlich). Schau dort mal nach

Weiter gibts im service "task scheduler" einen Haken "allow to interact with desktop" . Setz den mal.

Und dann gibts von MS noch einen Hotfix, den man aber nur bei einem Supportcall bekommt.

 

cu

blub

Link zu diesem Kommentar

danke für die Tipps, hat aber nicht geholfen.

 

Weist du noch ungefähr wo bzw. wie ich den Hotfix finden kann.

 

edit:

habe die VBS-Datei einfach mal komplett neu erstellt. Und siehe da, jetzt funktioniert alles so wie es soll.

 

Ist das normal bei VBS? Die alte Datei hat zum Schluss total gesponnen. Hat, wenn ich den shutdown-Befehl (siehe oben)

benutzt habe eine Endlosschleife erzeut. Bei anderen Kommandos nicht.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...