ferdi1
Goto Top

Schtask Aufruf mit Parameterübergabe

Hallo,

ich habe da ein kleines Problem bei dem Versuch einen Task auf einem Remoterechner zu erstellen.
Es geht darum verschiedene Rechner zeitgesteuert zu sichern.
Dazu soll ein CMD-Script aus dem VErzeichnis c:\Program Files\Clientbackup mit dem Parameter "start" aufgerufen werden .

Ich habe ein Script geschrieben welches schtasks in der folgenden weise aufruft:


Set CliSnapRun="%ProgramFiles%\imagebackup\CliSnapUp.cmd start"
Schtasks /create /tn ClientSnapshot /tr %CliSnapRun% /sc weekly /mo 1 /d Mo /s mysystem


Ich erhalte jedoch immer eine Fehlermeldung, das "Start" kein gültiger Parameter sei.

Ich denke das ich den Pfad in irgendeiner weise "maskieren" muß, ich habe jedoch keine Ahnung wie.
Meine Versuche mit ^" usw. hatten leider keinen Erfolg.

Kann mir jemand weiterhelfen ?


Ich

Content-Key: 56900

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

Printed on: April 23, 2024 at 20:04 o'clock

Member: bastla
bastla Apr 17, 2007 at 17:47:31 (UTC)
Goto Top
Hallo ferdi1 und willkommen im Forum!

Das Einfachste drüfte es sein, eine weitere Batchdatei "CliSnapUpStart.cmd" mit dem Inhalt
"%ProgramFiles%\imagebackup\CliSnapUp.cmd" start  
zu erstellen und diese per geplantem Tast zu starten.

Grüße
bastla
Member: Rockfire
Rockfire Apr 17, 2007 at 18:13:22 (UTC)
Goto Top
Hallo Ferdi1

Ich habe das bei mir gerade ausprobiert. Unter WinXP Sp2 funktioniert es.
Kannst du vielleicht noch ein paar Daten zu deinem System nennen?

Gruß

Rockfire
Member: Biber
Biber Apr 17, 2007 at 18:59:49 (UTC)
Goto Top
Moin ferdi1,

Willkommen auch von mir.

...wenn Du die Anführungszeichen anders setzt, sollte es auch gehen..
Set "CliSnapRun=%ProgramFiles%\imagebackup\CliSnapUp.cmd start"  
Schtasks /create /tn ClientSnapshot /tr "%CliSnapRun%" /sc weekly /mo 1 /d Mo /s mysystem  

Aber Rockfires Bitte finde ich auch berechtigt... face-wink

Und mir sei bitte die Nachfrage gestattet, WTF braucht den die CliSnapUp.cmd überhaupt einen Parameter?
Bzw. kennt die denn noch andere?
Den Zusatznutzen erkenne ich von hier aus nicht...

Gruss
Biber
Member: ferdi1
ferdi1 Apr 18, 2007 at 08:45:48 (UTC)
Goto Top
Hallo Ferdi1

Ich habe das bei mir gerade ausprobiert.
Unter WinXP Sp2 funktioniert es.
Kannst du vielleicht noch ein paar Daten zu
deinem System nennen?

Gruß

Rockfire

Hallo Rockfire,

ich habe ebebfalls XP mit SP2.
Aber bei mir funktioniert es nicht so wie erwartet.
Der Task wird zwar angelegt, aber das Problem ist der Pfad zum Program Directory, da dieser einen BLank enthällt.

Wenn ich mir die Eigenschaften des erstellten Tasks anschaue, sieht es bei mir so aus, das der Pfad nicht in "" eingeschlossen ist, und der Aufruf nicht funktioniert.


Viele Grüße
Ferdi1
Member: ferdi1
ferdi1 Apr 18, 2007 at 09:10:02 (UTC)
Goto Top
Moin ferdi1,

Willkommen auch von mir.

...wenn Du die Anführungszeichen anders
setzt, sollte es auch gehen..
Set
> "CliSnapRun=%ProgramFiles%\imagebackup\CliSnapUp.cmd  
> start"  
> Schtasks /create /tn ClientSnapshot /tr
> "%CliSnapRun%" /sc weekly /mo 1 /d  
> Mo /s mysystem
> 

Aber Rockfires Bitte finde ich auch
berechtigt... face-wink

Und mir sei bitte die Nachfrage gestattet,
WTF braucht den die CliSnapUp.cmd
überhaupt einen Parameter?
Bzw. kennt die denn noch andere?
Den Zusatznutzen erkenne
ich von hier aus nicht...

Gruss
Biber


Hallo Biber,

das Script CliSnapUp hat neben dem Parameter Start, auch weitere Parameter wie z.B. Install
welches mit dem AT -Befeht einen Task erstellt der dan Zeitgesteuert aufgerufen wird.
Wir haben hier eine gemischte Umgebung von Nt4 / W2K / XP Clients die möglichst automatisiert gesichert weden sollen.
Daher eben auch verschiedene Parameter bei dem Aufruf des Scriptes.

Ich könnte das Script mit den notwendigen Prametern natürlich auch aus einem anderen CMD heraus starten, was wohl die einfachste Lösung wäre.

Nach mehreren erfolglosen Versuchen diesen Aufruf mit der Übergabe der Parameter,
zu realisieren habe ich nach der korrekten Syntax für diesen Fall gesucht.

Ich weiß das man in so einem Fall eben "maskieren" muß, aber ich habe das irgendwie nie so richtig begriffen, wie das funktioniert mit dieser Maskerade.


Viele Grüße
Ferdi1
Member: Rockfire
Rockfire Apr 18, 2007 at 11:10:51 (UTC)
Goto Top
Hy Ferdi1,

das erklärt das natürlich, das es bei mir funktionierte. face-wink

Wenn du so Probleme mit den Leerzeichen hast, die man(ich) häufig bei Batchdateien hat. Schon einmal überlegt die dateien einfach in einen anderen Ordner zu legen. Wir legen meist im Windowsverzeichnis einen Ordner Batch oder Script an.

Ansonsten kann ich dir leider nicht helfen. Tut mir leid. Aber ich bin mir sicher hier findet sich bestimmt noch eine Lösung für den Problem.

Gruß

Rockfire
Member: Biber
Biber Apr 18, 2007 at 19:22:47 (UTC)
Goto Top
Moin Ferdi1 nochmal,

ich kann den Problem nicht reproduzieren.
Bei meinem "deutschen" SchTasks.exe funktionieren sowohl die oben von mir gepostete Syntax wie auch eine Variation wie z.B.

Schtasks ..../tr " "%ProgramFiles%\imagebackup\CliSnapUp.cmd" start"

(also ["Programm-in-Anfü-Zeichen" plus Parameter] nochmal in Anfü-Zeichen gepackt )

Hattest Du meine Variante oben ausprobiert?

[Hier auf WinXP Pro SP2 getestet]

Gruss
Biber
Member: Biber
Biber Apr 18, 2007 at 20:54:39 (UTC)
Goto Top
Update.

Ziehe die letzte Frage zurück, denn inzwischen habe ich eine Antwort.
Vom sympathischen Weltmarktführer selbst.
Und ich gebe zu, so um die Ecke denken wie die Redmonder kann ich nicht...

Hier M$-KB 823093 stehts...

For example, the following example task does not run when you schedule it: 
schtasks /create /tn "my task" /tr "c:\foldername containing spaces\script.bat arguments" /sc once /sd 07/29/2003 /st 10:01  
However, when you enclose the path of the task between the backslash and quotation marks character combinations as in the following example, the scheduled task runs successfully: 
schtasks /create /tn "my task" /tr "\"c:\foldername name containing spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01  

Krank, krank, krank...

Und es gibt auch noch einen weiteren, noch extremeren Workaround (der total unlogisch ist):
  • Das, was als "/TR"-Parameter dienen soll, in doppelte (=ein Paar von) Anführungszeichen packen, [ja, in ""]
  • zusätzlich JEDES Leerzeichen in Anführungszeichen verpacken
  • am Ende ZUSÄTZLICH noch ein Anführungszeichen anhängen

Auch wenn es mir keiner glauben wird...

Aufruf soll sein:
"c:\Eigene Dateien\Test.bat" mit Parameter 1 = start und Parameter 2 Dateiname
z.B.
"c:\Eigene Dateien\Test.bat" start "C:\Dies und Das\xyz.bla"
>dann ist der an Schtasks übergebene /TR-Parameter:
SchTasks ...... /TR """c:\Eigene" "Dateien\Test.bat" "start" "C:\Dies" "und" "Das\xyz.bla"""  
*kopfschüttel*

Gottseidank will M$ ja mehr in Richtung "Entertainment-Rechner" gehen, hab ich gelesen.
Ich möchte auch nicht an einer Herz-Lungen-Maschine hängen, die unter M$-Betriebssytemen läuft.
Oder in einem Flugzeug mit Vi$ta-Autopilot mitfliegen....

Gruss
Biber
Member: ferdi1
ferdi1 Apr 19, 2007 at 13:35:54 (UTC)
Goto Top
Update.

Ziehe die letzte Frage zurück, denn
inzwischen habe ich eine Antwort.
Vom sympathischen Weltmarktführer
selbst.
Und ich gebe zu, so um die Ecke denken wie
die Redmonder kann ich nicht...

Hier
[http://support.microsoft.com/kb/823093/en-us
M$-KB 823093] stehts...

For example, the following
> example task does not run when you schedule
> it: 
> schtasks /create /tn "my task" /tr  
> "c:\foldername containing  
> spaces\script.bat arguments" /sc once  
> /sd 07/29/2003 /st 10:01
> However, when you enclose the path of the
> task between the backslash and quotation
> marks character combinations as in the
> following example, the scheduled task runs
> successfully: 
> schtasks /create /tn "my task" /tr  
> "\"c:\foldername name containing  
> spaces\script.bat\" arguments" /sc  
> once /sd 07/29/2003 /st 10:01
> 

Krank, krank, krank...

Und es gibt auch noch einen weiteren, noch
extremeren Workaround (der total unlogisch
ist):
  • Das, was als "/TR"-Parameter
dienen soll, in doppelte
(=ein Paar von) Anführungszeichen
packen, [ja, in ""]
  • zusätzlich JEDES Leerzeichen in
Anführungszeichen verpacken
  • am Ende ZUSÄTZLICH noch ein
Anführungszeichen anhängen

Auch wenn es mir keiner glauben wird...

Aufruf soll sein:
"c:\Eigene Dateien\Test.bat" mit
Parameter 1 = start und Parameter 2
Dateiname
z.B.
> "c:\Eigene Dateien\Test.bat"
start "C:\Dies und Das\xyz.bla"
>dann ist der an Schtasks
übergebene /TR-Parameter:
SchTasks ...... /TR
> """c:\Eigene"  
> "Dateien\Test.bat"  
> "start" "C:\Dies"  
> "und"  
> "Das\xyz.bla"""  
> 
*kopfschüttel*

Gottseidank will M$ ja mehr in Richtung
"Entertainment-Rechner" gehen, hab
ich gelesen.
Ich möchte auch nicht an einer
Herz-Lungen-Maschine hängen, die unter
M$-Betriebssytemen läuft.
Oder in einem Flugzeug mit Vi$ta-Autopilot
mitfliegen....

Gruss
Biber


Hallo Biber,

vielen Dank für die Hilfe, jetzt funktioniert's.
Aber wer soll bitte auf so eine Syntax kommen ?

Ist doch wirklich krank.


Viele Grüße
Ferdi1