Task ein- und ausschalten

Task ein- und ausschalten

am 13.11.2007 10:01:11 von Ferry Bolhar

Hallo,

auf einem Windows-System läuft mit schöner Regelmäßigkeit ein über den
Taskplaner gesteuerter Job.

Ich müsste nun ein Perl-Skript schreiben, das

-) diesen Job bei Bedarf aktiviert/deaktiviert,

-) das von einem anderen Rechner aus tut.


Konkret soll angegeben werden können:

Rechner, Skript (Task) Name, neuer Status (optional)

Das Skript soll den alten Status ausgeben und den neuen, falls angegeben,
setzen.

Irgendwelche Ideen?

Danke und LG,

Ferry

--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: ferdinand.bolhar-nordenkampf@wien.gv.at

Re: Task ein- und ausschalten

am 13.11.2007 11:03:23 von sheinrich

Ich habe noch nicht mit Windows-Systemaufrufen gearbeitet, aber das
sollte eigentlich kein Problem sein(?).

Aus der Windowshilfe (Befehlszeilenreferenz)
Da waere einmal das gute alte 'at':
At Plant Befehle und Programme, so dass diese zu bestimmten
Zeitpunkten ausgeführt werden. Sie können at nur dann verwenden, wenn
der Dienst Taskplaner ausgeführt wird. Ohne Parameter zeigt der Befehl
at geplante Befehle an.

Syntax
at [\\Computername] [{[ID] [/delete]|/delete [/yes]}]

at [[\\Computername] Stunden:Minuten [/interactive] [{/
every:Datum[,...]|/next:Datum[,...]}] Befehl]

...

Am Ende wird aber empfohlen stattdessen nur 'schtasks' zu verwenden:
SchtasksSteuert Befehle und Programme, die regelmäßig oder zu einem
vorbestimmten Termin gestartet werden sollen. Fügt Tasks zum Zeitplan
hinzu und entfernt sie, startet und beendet Tasks auf Anforderung und
zeigt geplante Tasks an und ändert sie.

Klicken Sie auf den folgenden Befehl, um die Befehlssyntax anzuzeigen:

schtasks create

Erstellt einen neuen geplanten Task

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc Zeitplan [/mo
Parameter] [/d Tag] [/m Monat[,Monat...] [/i Leerlaufzeit] [/st
Startzeit] [/sd Startdatum] [/ed Enddatum] [/s Computer [/u [Domäne
\]Benutzer /p Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp
Kennwort]] /?

Parameter
/tn Taskname
Gibt einen Namen für den Task an.
/tr AuszuführenderTask
Gibt das Programm oder den Befehl an, das bzw. den der Task ausführt.
Geben Sie den vollständigen Pfad und Dateinamen einer ausführbaren
Datei, Skriptdatei oder Batchdatei ein. Wenn Sie den Pfad weglassen,
nimmt SchTasks.exe an, dass die Datei sich im Verzeichnis Systemroot
\System32 befindet.
/sc Zeitplan
Wert Beschreibung
MINUTE, STÜNDLICH, TÄGLICH, WÖCHENTLICH, MONATLICH Gibt die
Zeiteinheit für den Plan an.
EINMAL Der Task wird zu einem angegebenen Datum und einer angegebenen
Zeit einmal ausgeführt.
BEIMSTART Der Task wird bei jedem Systemstart ausgeführt. Sie können
ein Startdatum angeben oder den Task beim nächsten Systemstart
ausführen.
BEIANMELDUNG Der Task wird jedes Mal ausgeführt, wenn sich ein
(beliebiger) Benutzer anmeldet. Sie können ein Startdatum angeben oder
den Task ausführen, wenn sich der Benutzer das nächste Mal anmeldet.
BEILEERLAUF Der Task wird immer ausgeführt, wenn das System sich
während eines angegebenen Zeitraums im Leerlauf befindet. Sie können
ein Startdatum angeben oder den Task ausführen, wenn sich das System
das nächste Mal im Leerlauf befindet.

/mo Parameter
Gibt an, wie oft der Task innerhalb seines Zeitplantyps ausgeführt
wird. Dieser Parameter ist für einen Zeitplan vom Typ MONATLICH
erforderlich. Dieser Parameter ist gültig, aber optional für einen
Zeitplan vom Typ MINUTE, STÜNDLICH, TÄGLICH oder WÖCHENTLICH. Der
Standardwert ist 1. Zeitplantyp Parameter Beschreibung
MINUTE 1 - 1439 Der Task wird alle n Minuten ausgeführt.
STÜNDLICH 1 - 23 Der Task wird alle n Stunden ausgeführt.
TÄGLICH 1 - 365 Der Task wird alle n Tage ausgeführt.
WÖCHENTLICH 1 - 52 Der Task wird alle n Wochen ausgeführt.
MONATLICH 1 - 12 Der Task wird alle n Monate ausgeführt.
LETZTERTAG Der Task wird am letzten Tag des Monats ausgeführt.
ERSTER, ZWEITER, DRITTER, VIERTER, LETZTER Verwenden Sie den Typ mit
dem Parameter /d Tag, um einen Task in einer bestimmten Woche und an
einem bestimmten Tag auszuführen, beispielsweise am dritten Mittwoch
des Monats.

/d Tag
Gibt einen Wochentag oder einen Tag des Monats an. Nur gültig bei
einem Zeitplan vom Typ WÖCHENTLICH oder MONATLICH. Zeitplantyp Werte
für Tag
WÖCHENTLICH Optional. Gültige Werte sind MO - SO und * (jeden Tag). MO
ist der Standardwert.
MONATLICH Ein Wert aus dem Bereich MO - SO ist erforderlich, wenn der
Parameter /mo für ERSTER, ZWEITER, DRITTER, VIERTER oder LETZTER
verwendet wird. Ein Wert zwischen 1 und 31 ist optional und ist nur
ohne Parameter oder mit einem Parameter vom Typ 1 - 12 gültig. Der
Standardwert ist Tag 1 (der erste Tag des Monats).

/m Monat[,Monat...]
Gibt einen Monat des Jahres an. Gültige Werte sind JAN - DEZ und *
(jeden Monat). Der Parameter /m ist nur bei einem Zeitplan vom Typ
MONATLICH gültig. Er ist erforderlich, wenn der Parameter LETZTERTAG
verwendet wird. Andernfalls ist er optional, und der Standardwert ist
* (jeden Monat).
/i Leerlaufzeit
Gibt an, wie viele Minuten sich der Computer im Leerlauf befindet, bis
der Task startet. Geben Sie eine Ganzzahl zwischen 1 und 999 ein.
Dieser Parameter ist nur bei einem Zeitplan vom Typ BEILEERLAUF gültig
und ist dann erforderlich.
/st Startzeit
Gibt die Tageszeit, zu der der Task startet, im 24-Stunden-Format
HH:MM:SS an. Der Standardwert ist die aktuelle lokale Zeit bei
Abschluss des Befehls. Der Parameter /st ist gültig bei Zeitplänen vom
Typ MINUTE, STÜNDLICH, TÄGLICH, WÖCHENTLICH, MONATLICH und EINMAL. Er
ist erforderlich bei einem Zeitplan vom Typ EINMAL.
/sd Startdatum
Gibt das Datum, an dem der Task startet, im Format MM/DD/YYYY an. Der
Standardwert ist das aktuelle Datum. Der Parameter /sd ist bei allen
Zeitplänen gültig und ist erforderlich für einen Zeitplan vom Typ
EINMAL.
/ed Enddatum
Gibt das letzte Datum an, an dem die Ausführung des Tasks geplant ist.
Dieser Parameter ist optional. Er ist nicht gültig in einem Zeitplan
vom Typ EINMAL, BEIMSTART, BEIANMELDUNG oder BEILEERLAUF.
Standardmäßig haben Zeitpläne kein Enddatum.
/s Computer
Gibt den Namen oder die IP-Adresse eines Remotecomputers an (mit oder
ohne umgekehrte Schrägstriche). Die Standardeinstellung ist der lokale
Computer.
/u [Domäne\]Benutzer
Führt den Befehl mit den Berechtigungen des angegebenen Benutzerkontos
aus. Standardmäßig wird der Befehl mit den Berechtigungen des
Benutzers ausgeführt, der an dem Computer angemeldet ist, der SchTasks
ausführt.
/p Kennwort
Gibt das Kennwort des im Parameter /u angegebenen Benutzerkontos an.
Dieser Parameter ist erforderlich, wenn der Parameter /u verwendet
wird.
/ru {[Domäne\]Benutzer | "System"}
Führt die Tasks mit der Berechtigung des angegebenen Benutzerkontos
aus. Standardmäßig wird der Task mit den Berechtigungen des Benutzers
ausgeführt, der an dem Computer angemeldet ist, der SchTasks ausführt.
Wert Beschreibung

[Domäne\]Benutzer Gibt ein Benutzerkonto an.
"System" oder "" Gibt das Konto NT-Autorität\System an, das vom
Betriebssystem verwendet wird.

/rp Kennwort
Gibt das Kennwort des im Parameter /ru angegebenen Benutzerkontos an.
Wenn Sie diesen Parameter beim Angeben eines Benutzerkontos weglassen,
fordert SchTasks.exe Sie auf, das Kennwort einzugeben, und macht den
eingegebenen Text unkenntlich. Tasks, die mit den Berechtigungen des
Kontos NT-Autorität\System ausgeführt werden, erfordern kein Kennwort,
und SchTasks.exe fordert nicht zur Eingabe eines Kennwortes auf.
/?
Zeigt die Hilfe an der Eingabeaufforderung an.
Hinweise
Verwenden der Befehlszeilenoptionen /s, /u und /p Die
Befehlszeilenoptionen /u und /p stehen nur zur Verfügung, wenn Sie /s
verwenden. Sie müssen /p mit /u verwenden, um das Kennwort des
Benutzers anzugeben.
SchTasks.exe überprüft keine Pfade von Programmdateien oder Kennwörter
von Benutzerkonten. Wenn Sie nicht den richtigen Pfad der Datei oder
das richtige Kennwort für das Benutzerkonto eingeben, wird der Task
erstellt, aber nicht ausgeführt. Der Task wird ebenfalls nicht
ausgeführt, wenn das Kennwort für ein Konto sich ändert oder abläuft
und Sie das im Task gespeicherte Kennwort nicht ändern.
Das Konto NT-Autorität\System verfügt nicht über interaktive
Anmelderechte. Benutzer sehen mit Systemberechtigungen ausgeführte
Programme nicht und können nicht mit ihnen interagieren.
Jeder Task führt nur ein Programm aus. Sie können jedoch eine
Batchdatei erstellen, die mehrere Tasks startet, und dann einen Task
planen, der die Batchdatei ausführt.
Sie können einen Task gleich beim Erstellen testen. Verwenden Sie den
Vorgang run, um den Task zu testen, und überprüfen Sie dann die Datei
SchedLgU.txt (Systemroot\SchedLgU.txt) auf Fehler.
Syntax und Beispiele für die einzelnen Zeitplantypen
Klicken Sie auf einen Befehl, um die Befehlssyntax anzuzeigen:

schtasks create minute

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc minute [/mo
{1 - 1439}] [/st Startzeit] [/sd Startdatum] [/ed Enddatum] [/s
Computer [/u [Domäne\]Benutzer /p Kennwort]] [/ru {[Domäne\]Benutzer |
"System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der alle 20 Minuten ausgeführt wird
Der folgende Befehl plant ein Sicherheitsskript, Sec.vbs, das alle 20
Minuten ausgeführt wird. Da der Befehl kein Startdatum und keine
Startzeit enthält, startet der Task 20 Minuten nach Abschluss des
Befehls und wird danach, immer wenn das System in Betrieb ist, alle 20
Minuten ausgeführt. Beachten Sie, dass die Quelldatei des
Sicherheitsskripts sich auf einem Remotecomputer befindet, während der
Task auf dem lokalen Computer geplant und ausgeführt wird.

schtasks /create /sc minute /mo 20 /tn "Sicherheitsskript" /tr \
\central\data\scripts\sec.vbs

Als Reaktion zeigt SchTasks.exe eine Meldung an, die erklärt, dass der
Task mit den Berechtigungen des aktuellen Benutzers ausgeführt wird,
und fordert zur Eingabe des Kennwortes des aktuellen Benutzers auf.
Wenn Sie das Kennwort eingeben, macht SchTasks.exe den eingegebenen
Text unkenntlich.


Der Task wird unter dem Namen des aktuell angemeldeten Benutzers
erstellt.
Bitte geben Sie das Kennwort ein
************

Dann zeigt SchTasks.exe eine Meldung an, die darauf hinweist, dass der
Task geplant wurde:

ERFOLGREICH: Der geplante Task "Sicherheitsskript" wurde erfolgreich
erstellt.
Eine Abfrage zeigt den Task, den der Befehl geplant hat:


Taskname Nächste Ausführung Status
==================== =====3D=
==================== ==== =
==============
Sicherheitsskript 10:50:00 Uhr , 04.04.2001


schtasks create hourly

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc hourly [/mo
{1 -365}] [/st Startzeit] [/sd Startdatum] [/ed Enddatum] [/s Computer
[/u [Domäne\]Benutzer /p Kennwort]] [/ru {[Domäne\]Benutzer |
"System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Befehl, der stündlich fünf Minuten nach der vollen
Stunde ausgeführt wird
Der folgende Befehl plant, dass das Programm MeineAnw stündlich
ausgeführt wird, beginnend um fünf Minuten nach Mitternacht. Da der
Parameter /mo weggelassen wird, verwendet der Befehl den Standardwert
für den stündlichen Zeitplan, nämlich jede (1) Stunde. Wenn dieser
Befehl nach 0.05 Uhr ausgegeben wird, wird das Programm erst am
nächsten Tag ausgeführt.

schtasks /create /sc hourly /st 00:05:00 /tn "Meine Anw" /tr c:\apps
\meinanw.exe

So planen Sie einen Befehl, der alle fünf Stunden ausgeführt wird
Der folgende Befehl plant, dass das Programm MeineAnw alle fünf
Stunden ausgeführt wird, beginnend am ersten Tag des Monats März 2001.
Er verwendet den Parameter /mo, um den Intervall anzugeben, und den
Parameter /sd, um das Startdatum anzugeben. Da der Befehl keine
Startzeit angibt, wird die aktuelle Zeit als Startzeit verwendet.

schtasks /create /sc hourly /mo 5 /sd 03/01/2001 /tn "Meine Anw" /tr c:
\apps\meineanw.exe

schtasks create daily

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc daily [/mo {1
-365}] [/st Startzeit] [/sd Startdatum] [/ed Enddatum] [/s Computer [/
u [Domäne\]Benutzer /p Kennwort]] [/ru {[Domäne\]Benutzer | "System"}
[/rp Kennwort]]

Beispiel
So planen Sie einen Task, der jeden Tag ausgeführt wird
Das folgende Beispiel plant, dass das Programm MeineAnw einmal am Tag
ausgeführt wird, jeden Tag um 8.00 Uhr, bis zum 31. Dezember 2001. Da
der Parameter /mo weggelassen wird, wird der Standardintervall 1
verwendet, um den Befehl jeden Tag auszuführen.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc daily /
st 08:00:00 /ed 12/31/2001

So planen Sie einen Task, der jeden zweiten Tag ausgeführt wird
Das folgende Beispiel plant, dass das Programm MeineAnw jeden zweiten
Tag um 13.00 Uhr ausgeführt wird, beginnend am 31. Dezember 2001. Der
Befehl verwendet den Parameter /mo, um einen Intervall von zwei (2)
Tagen anzugeben.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc daily /
mo 2 /st 13:00:00 /sd 12/31/2001

schtasks create weekly

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc weekly [/d
{MO - SO | *}] [/mo {1 - 52}] [/st Startzeit] [/sd Startdatum] [/ed
Enddatum] [/s Computer [/u [Domäne\]Benutzer /p Kennwort]] [/ru
{[Domäne\]Benutzer | "System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der alle sechs Wochen ausgeführt wird
Der folgende Befehl plant, dass das Programm MeineAnw alle sechs
Wochen auf einem Remotecomputer ausgeführt wird. Der Befehl verwendet
den Parameter /mo, um den Intervall anzugeben. Er verwendet außerdem
den Parameter /s, um den Remotecomputer anzugeben, und den Parameter /
ru, um zu planen, dass der Task mit den Berechtigungen des Kontos
Administrator des Benutzers ausgeführt wird. Da der Parameter /rp
weggelassen wird, fordert SchTasks.exe den Benutzer auf, das Kennwort
für das Konto Administrator einzugeben.

Außerdem verweisen, da der Befehl remote ausgeführt wird, alle Pfade
im Befehl, einschließlich des Pfades zu MeineAnw.exe, auf Pfade auf
dem Remotecomputer.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc weekly /
mo 6 /s Server16 /ru Admin01

So planen Sie einen Task, der jede zweite Woche freitags ausgeführt
wird
Der folgende Befehl plant einen Task, der jeden zweiten Freitag
ausgeführt wird. Er verwendet den Parameter /mo, um den zweiwöchigen
Intervall anzugeben, und den Parameter /d, um den Wochentag anzugeben.
Lassen Sie den Parameter /mo weg, oder legen Sie ihn auf 1 fest, um
einen Task zu planen, der jeden Freitag ausgeführt wird.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc weekly /
mo 2 /d FRI

schtasks create monthly

Syntax
Allgemeine Syntax für den Zeitplan vom Typ MONATLICH
schtasks /create /tn Taskname /tr AuszuführenderTask /sc monthly [/mo
{ERSTER | ZWEITER | DRITTER | VIERTER | LETZTER | LETZTERTAG] [/d {MO
- SO | 1 - 31}] [/m {JAN - DEZ[,JAN - DEZ...] | *}] [/st Startzeit] [/
sd Startdatum] [/ed Enddatum] [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp Kennwort]]
Syntax für eine bestimmte Woche
schtasks /create /tn Taskname /tr AuszuführenderTask /sc monthly /mo
{ERSTER | ZWEITER | DRITTER | VIERTER | LETZTER} /d {MO - SO} [/m {JAN
- DEZ[,JAN - DEZ...] | *}] [/st Startzeit] [/sd Startdatum] [/ed
Enddatum] [/s Computer [/u [Domäne\]Benutzer /p Kennwort]] [/ru
{[Domäne\]Benutzer | "System"} [/rp Kennwort]]
Syntax für den letzten Tag
schtasks /create /tn Taskname /tr AuszuführenderTask /sc monthly /mo
LETZTERTAG /m {JAN - DEZ[,JAN - DEZ...] | *}] [/st Startzeit] [/sd
Startdatum] [/ed Enddatum] [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp Kennwort]]
Syntax für ein bestimmtes Datum
schtasks /create /tn Taskname /tr AuszuführenderTask /sc monthly /d {1
- 31} [/m {JAN - DEZ[,JAN - DEZ...] | *}] [/st Startzeit] [/sd
Startdatum] [/ed Enddatum] [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp Kennwort]]
Beispiele
So planen Sie einen Task für den ersten Tag jedes Monats
Der folgende Befehl plant, dass das Programm MeineAnw am ersten Tag
jedes Monats ausgeführt wird. Da standardmäßig kein Parameter
verwendet wird, der Standardtag "Tag 1" ist und der Standardmonat
"jeden Monat" ist, benötigt der Befehl keine zusätzlichen Parameter.

schtasks /create /tn "MeineAnw" /tr c:\apps\meineanw.exe /sc monthly

So planen Sie einen Task für den letzten Tag jedes Monats
Der folgende Befehl plant, dass das Programm MeineAnw am letzten Tag
jedes Monats ausgeführt wird. Er verwendet den Parameter /mo, um den
letzten Tag des Monats anzugeben, und den Parameter /m mit dem
Platzhalterzeichen (*), um anzuzeigen, dass das Programm am letzten
Tag jedes Monats ausgeführt wird.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc monthly /
mo lastday /m *

So planen Sie einen Task, der alle drei Monate ausgeführt wird
Der folgende Befehl plant, dass das Programm MeineAnw alle drei Monate
ausgeführt wird. Er verwendet den Parameter /mo, um den Intervall
anzugeben.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc monthly /
mo 3

So planen Sie einen Task für den zweiten Sonntag jedes Monats
Der folgende Befehl plant, dass das Programm MeineAnw am zweiten
Sonntag jedes Monats ausgeführt wird. Er verwendet den Parameter /mo,
um die zweite Woche des Monats anzugeben, und den Parameter /d, um den
Tag anzugeben.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc monthly /
mo ZWEITER /d SO

So planen Sie einen Task für den 15. Mai und den 15. Juni
Das folgende Beispiel plant, dass das Programm MeineAnw am 15. Mai und
am 15. Juni um 15.00 Uhr ausgeführt wird. Es verwendet den Parameter /
d, um das Datum anzugeben, und den Parameter /m, um die Monate
anzugeben. Es verwendet außerdem den Parameter /st, um die Startzeit
anzugeben.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc monthly /
d 15 /m MAI,JUN /st 15:00:00

schtasks create once

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc once /st
Startzeit /sd Startdatum [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der einmal ausgeführt wird
Der folgende Befehl plant, dass das Programm MeineAnw am 1. Januar
2002 um Mitternacht ausgeführt wird. Er verwendet den Parameter /ru,
um den Task mit den Berechtigungen des Konto Administrator des
Benutzers ausführen, und den Parameter /rp, um das Kennwort für das
Konto Administrator anzugeben.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc once /st
00:00:00 /sd 01/01/2002 /ru Admin23 /rp p@ssworD1

schtasks create onstart

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc onstart [/sd
Startdatum] [/s Computer [/u [Domäne\]Benutzer /p Kennwort]] [/ru
{[Domäne\]Benutzer | "System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der bei jedem Start des Systems ausgeführt
wird
Der folgende Befehl plant, dass das Programm MeineAnw bei jedem Start
des Systems ausgeführt wird, beginnend am 15. März 2001.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc onstart /
sd 03/15/2001

schtasks create onlogon

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc onlogon [/sd
Startdatum] [/s Computer [/u [Domäne\]Benutzer /p Kennwort]] [/ru
{[Domäne\]Benutzer | "System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der ausgeführt wird, wenn ein Benutzer sich
an einem Remotecomputer anmeldet
Der folgende Befehl plant, dass eine Batchdatei jedes Mal ausgeführt
wird, wenn ein (beliebiger) Benutzer sich am Remotecomputer anmeldet.
Er verwendet den Parameter /s, um den Remotecomputer anzugeben.
Außerdem verweisen, da der Befehl remote ausgeführt wird, alle Pfade
im Befehl, einschließlich des Pfades zu der Batchdatei, auf einen Pfad
auf dem Remotecomputer.

schtasks /create /tn "Website starten" /tr c:\myiis\webstart.bat /sc
onlogon /s Server23

schtasks create onidle

Syntax
schtasks /create /tn Taskname /tr AuszuführenderTask /sc onidle /
iLeerlaufzeit [/sd Startdatum] [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/ru {[Domäne\]Benutzer | "System"} [/rp Kennwort]]

Beispiel
So planen Sie einen Task, der immer ausgeführt wird, wenn der Computer
sich im Leerlauf befindet
Der folgende Befehl plant, dass das Programm MeineAnw immer ausgeführt
wird, wenn der Computer sich im Leerlauf befindet. Er verwendet den
erforderlichen Parameter /i, um anzugeben, dass der Computer sich zehn
Minuten im Leerlauf befunden haben muss, bevor der Task startet.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc onidle /
i 10

Weitere Beispiele
Klicken Sie auf den jeweiligen Beispielnamen, um das Beispiel
anzuzeigen:

So erstellen Sie einen Task, der mit Systemberechtigungen ausgeführt
wird

Der folgende Befehl plant, dass das Programm MeineAnw mit den
Berechtigungen des Kontos NT-Autorität\System ausgeführt wird. In
diesem Beispiel ist geplant, dass der Task am ersten Tag jedes Monats
ausgeführt wird. Sie können jedoch jeden Zeitplantyp für einen mit
Systemberechtigungen ausgeführten Task verwenden.

Der Befehl verwendet den Parameter /ru "System", um den
Systemsicherheitskontext anzugeben. Da Systemtasks kein Kennwort
verwenden, wird der Parameter /rp weggelassen.

schtasks /create /tn "Meine Anw" /tr c:\apps\meineanw.exe /sc monthly /
d 1 /ru "System"

Als Reaktion zeigt SchTasks.exe eine Informationsmeldung und eine
Erfolgsmeldung an. Das Programm fordert nicht zur Eingabe eines
Kennwortes auf.


INFO: Der Task wird unter dem Benutzernamen "NT-AUTORITÄT\SYSTEM"
erstellt.
ERFOLGREICH: Der geplante Task "Meine Anw" wurde erfolgreich erstellt.

So erstellen Sie einen Task, der mehrere Programme ausführt

Viele Tasks führen nur ein Programm aus. Sie können jedoch eine
Batchdatei erstellen, die mehrere Programme ausführt, und dann einen
Task planen, der die Batchdatei ausführt. Das folgende Verfahren
demonstriert diese Methode.

Erstellen Sie eine Batchdatei, die die Programme startet, die Sie
ausführen möchten.
In diesem Beispiel erstellen Sie eine Batchdatei, die die
Ereignisanzeige (Eventvwr.exe) und den Systemmonitor (Perfmon.exe)
startet.

Öffnen Sie einen Texteditor, beispielsweise Editor.
Geben Sie den Namen und den vollständigen Pfad zur ausführbaren Datei
des jeweiligen Programms ein. In diesem Fall enthält die Datei die
folgenden Anweisungen:
C:\Windows\System32\Eventvwr.exe
C:\Windows\System32\Perfmon.exe

Speichern Sie die Datei unter MeineAnw.bat.
Verwenden Sie SchTasks.exe, um einen Task zu erstellen, der
MeineAnw.bat ausführt.
Der folgende Befehl erstellt den Task Monitor, der immer ausgeführt
wird, wenn jemand sich anmeldet. Es verwendet den Parameter /tn, um
den Task zu benennen, und den Parameter /tr, um MeineAnw.bat
auszuführen. Es verwendet den Parameter /sc, um den Zeitplantyp
BEIANMELDUNG anzugeben, und den Parameter /ru, um das Konto
Administrator anzugeben.

schtasks /create /tn Monitor /tr C:\MeineAnw.bat /sc onlogon /ru Reskit
\Administrator

Als Ergebnis dieses Befehls startet der Task, immer wenn ein Benutzer
sich am Computer anmeldet, sowohl die Ereignisanzeige als auch den
Systemmonitor.

schtasks change

Ändert eine oder mehrere der folgenden Eigenschaften eines Tasks.

Das Programm, das der Task ausführt (/tr).
Das Benutzerkonto, unter dem der Task ausgeführt wird (/ru).
Das Kennwort für das Benutzerkonto (/rp).
Syntax
schtasks /change /tn Taskname [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] [/tr AuszuführenderTask] [/ru [Domäne\]Benutzer | "System"]
[/rp Kennwort]

Parameter
/tn Taskname
Identifiziert den zu ändernden Task. Geben Sie den Tasknamen ein.
/s Computer
Gibt den Namen oder die IP-Adresse eines Remotecomputers an (mit oder
ohne umgekehrte Schrägstriche). Die Standardeinstellung ist der lokale
Computer.
/u [Domäne\]Benutzer
Führt den Befehl mit den Berechtigungen des angegebenen Benutzerkontos
aus. Standardmäßig wird der Befehl mit den Berechtigungen des
Benutzers ausgeführt, der an dem Computer angemeldet ist, der SchTasks
ausführt.
/p Kennwort
Gibt das Kennwort des im Parameter /u angegebenen Benutzerkontos an.
Dieser Parameter ist erforderlich, wenn der Parameter /u verwendet
wird.
/tr AuszuführenderTask
Ändert das Programm, das der Task ausführt. Geben Sie den
vollständigen Pfad und Dateinamen einer ausführbaren Datei,
Skriptdatei oder Batchdatei ein. Wenn Sie den Pfad weglassen, nimmt
SchTasks.exe an, dass die Datei sich im Verzeichnis Systemroot
\System32 befindet. Das angegebene Programm ersetzt das ursprünglich
vom Task ausgeführte Programm.
/ru [Domäne\]Benutzer | "System"
Ändert das Benutzerkonto für den Task. Wert Beschreibung
[Domäne\]Benutzer Gibt ein Benutzerkonto an.
"System" oder "" Gibt das Konto NT-Autorität\System an, das vom
Betriebssystem verwendet wird.

Wenn Sie das Benutzerkonto ändern, müssen Sie auch das
Benutzerkennwort ändern. Wenn ein Befehl einen Parameter /ru, aber
keinen Parameter /rp enthält, fordert SchTasks.exe Sie auf, ein neues
Kennwort einzugeben und macht den eingegebenen Text unkenntlich.

Tasks, die mit den Berechtigungen des Kontos NT-Autorität\System
ausgeführt werden, erfordern kein Kennwort, und SchTasks.exe fordert
nicht zur Eingabe eines Kennwortes auf.

/rp Kennwort
Ändert das Kontokennwort für den Task. Geben Sie das neue Kennwort
ein.
/?
Zeigt die Hilfe an der Eingabeaufforderung an.
Hinweise
Verwenden der Befehlszeilenoptionen /s, /u und /p Die
Befehlszeilenoptionen /u und /p stehen nur zur Verfügung, wenn Sie /s
verwenden. Sie müssen /p mit /u verwenden, um das Kennwort des
Benutzers anzugeben.
Die Parameter /tn und /s identifizieren den Task. Die Parameter /tr, /
ru und /rp geben Eigenschaften des Tasks an, die Sie ändern können.
Ein Befehl, der den Vorgang change verwendet, muss mindestens eine
Taskeigenschaft ändern.
Das Konto NT-Autorität\System verfügt nicht über interaktive
Anmelderechte. Benutzer sehen mit Systemberechtigungen ausgeführte
Programme nicht und können nicht mit ihnen interagieren.
Beispiele
So ändern Sie das Programm, das ein Task ausführt
Der folgende Befehl ändert das Programm, das der Task Virus Check
ausführt, von VirusCheck.exe in VirusCheck2.exe. Dieser Befehl
verwendet den Parameter /tn, um den Task zu identifizieren, und den
Parameter /tr, um das neue Programm für den Task anzugeben. (Den
Tasknamen können Sie nicht ändern.)

schtasks /change /tn "Virus Check" /tr C:\VirusCheck2.exe

Als Reaktion zeigt SchTasks.exe die folgende Erfolgsmeldung an:

ERFOLGREICH: Der Parameter der geplanten Aufgabe "Virus Check" wurde
geändert.
Als Ergebnis dieses Befehls führt der Task Virus Check jetzt
VirusCheck2.exe aus.

So ändern Sie das Kennwort für einen Remotetask
Der folgende Befehl ändert das Kennwort des Benutzerkontos für den
Task ErinnerMich auf dem Remotecomputer Svr01. Der Befehl verwendet
den Parameter /tn, um den Task zu identifizieren, und den Parameter /
s, um den Remotecomputer anzugeben. Er verwendet den Parameter /rp, um
das neue Kennwort, p@ssWord3, anzugeben.

Dieses Verfahren ist immer erforderlich, wenn das Kennwort eines
Benutzerkontos abläuft oder sich ändert. Wenn das in einem Task
gespeicherte Kennwort nicht mehr gültig ist, wird der Task nicht
ausgeführt.

schtasks /change /tn ErinnerMich /s Svr01 /rp p@ssWord3

Als Reaktion zeigt SchTasks.exe die folgende Erfolgsmeldung an:

ERFOLGREICH: Der Parameter der geplanten Aufgabe "ErinnerMich" wurde
geändert.
Als Ergebnis dieses Befehls wird ErinnerMich jetzt unter seinem
ursprünglichen Benutzerkonto ausgeführt, jedoch mit einem neuen
Kennwort.

So ändern Sie das Programm und das Benutzerkonto für einen Task
Der folgende Befehl ändert das Programm, das ein Task ausführt, und
ändert das Benutzerkonto, unter dem der Task ausgeführt wird. Im
Wesentlichen verwendet er einen alten Zeitplan für einen neuen Task.
Dieser Befehl ändert den Task Editor, der Notepad.exe jeden Morgen um
900 Uhr startet, um stattdessen Internet Explorer zu starten.

Der Befehl verwendet den Parameter /tn, um den Task zu identifizieren.
Er verwendet den Parameter /tr, um das Programm zu ändern, das der
Task ausführt, und den Parameter /ru, um das Benutzerkonto zu ändern,
unter dem der Task ausgeführt wird.

Der Parameter /rp, der das Kennwort für das Benutzerkonto angibt, wird
weggelassen. Sie müssen ein Kennwort für das Konto angeben, aber Sie
können den Parameter /rp verwenden und das Kennwort in Klartext
eingeben oder darauf warten, dass SchTasks.exe Sie auffordert, ein
Kennwort einzugeben, und dann das Kennwort in unkenntlich gemachtem
Text eingeben.

schtasks /change /tn Editor /tr "c:\program files\Internet Explorer
\iexplore.exe" /ru DomainX\Admin01

Als Reaktion fordert SchTasks.exe das Kennwort für das Benutzerkonto
an. Es macht den eingegebenen Text unkenntlich, so dass das Kennwort
nicht sichtbar ist.

Bitte geben Sie das Kennwort für DomainX\Admin01 ein: *********
Der Parameter /tn identifiziert den Task, und die Parameter /tr und /
ru ändern die Eigenschaften des Tasks. Sie können keinen anderen
Parameter verwenden, um den Task zu identifizieren, und Sie können den
Tasknamen nicht ändern.

Als Reaktion zeigt SchTasks.exe die folgende Erfolgsmeldung an:

ERFOLGREICH: Der Parameter der geplanten Aufgabe "Editor" wurde
geändert.
Als Ergebnis dieses Befehls wird RemindMe jetzt unter seinem
ursprünglichen Benutzerkonto ausgeführt, jedoch mit einem neuen
Kennwort.

So ändern Sie ein Programm für das Systemkonto
Der folgende Befehl ändert den Task Sicherheitsskript so, dass er mit
den Berechtigungen des Kontos NT-Autorität\System ausgeführt wird. Er
verwendet den Parameter /ru "", um das Systemkonto anzugeben.

schtasks /change /tn Sicherheitsskript /ru ""

Als Reaktion zeigt SchTasks.exe die folgende Erfolgsmeldung an:

ERFOLGREICH: Der Parameter der geplanten Aufgabe "Sicherheitsskript"
wurde geändert.
Da Tasks, die mit den Berechtigungen des Systemkontos ausgeführt
werden, kein Kennwort erfordern, fordert SchTasks.exe nicht zur
Eingabe eines Kennwortes auf.

schtasks run

Startet einen geplanten Task sofort. Der Vorgang run ignoriert den
Zeitplan, verwendet jedoch den im Task gespeicherten Pfad der
Programmdatei, das Benutzerkonto und das Kennwort, um den Task sofort
auszuführen.

Syntax
schtasks /run /tn Taskname [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] /?

Parameter
/tn Taskname
Identifiziert den Task. Dieser Parameter ist erforderlich.
/s Computer
Gibt den Namen oder die IP-Adresse eines Remotecomputers an (mit oder
ohne umgekehrte Schrägstriche). Die Standardeinstellung ist der lokale
Computer.
/u [Domäne\]Benutzer
Führt den Befehl mit den Berechtigungen des angegebenen Benutzerkontos
aus. Standardmäßig wird der Befehl mit den Berechtigungen des
Benutzers ausgeführt, der an dem Computer angemeldet ist, der SchTasks
ausführt.
/p Kennwort
Gibt das Kennwort des im Parameter /u angegebenen Benutzerkontos an.
Dieser Parameter ist erforderlich, wenn der Parameter /u verwendet
wird.
/?
Zeigt die Hilfe an der Eingabeaufforderung an.
Hinweise
Verwenden der Befehlszeilenoptionen /s, /u und /p Die
Befehlszeilenoptionen /u und /p stehen nur zur Verfügung, wenn Sie /s
verwenden. Sie müssen /p mit /u verwenden, um das Kennwort des
Benutzers anzugeben.
Verwenden Sie diesen Vorgang, um Tasks zu testen. Wenn ein Task nicht
ausgeführt wird, überprüfen Sie das Transaktionsprotokoll des
Taskplanerdienstes, Systemroot\SchedLgU.txt auf Fehler.
Das Ausführen eines Tasks wirkt sich nicht auf den Taskzeitplan aus
und ändert nicht die nächste geplante Ausführungszeit für den Task.
Damit ein Task remote ausgeführt werden kann, muss er auf dem
Remotecomputer geplant werden. Wenn Sie den Task ausführen, wird er
nur auf dem Remotecomputer ausgeführt. Verwenden Sie den Taskmanager
oder das Transaktionsprotokoll des Taskplanerdienstes, Systemroot
\SchedLgU.txt, um zu überprüfen, ob ein Task auf einem Remotecomputer
ausgeführt wird.
Beispiele
So führen Sie einen Task auf dem lokalen Computer aus
Der folgende Befehl startet den Task "Sicherheitsskript".

schtasks /run /tn "Sicherheitsskript"

Als Reaktion startet SchTasks.exe das mit dem Task verknüpfte Skript
und zeigt die folgende Meldung an:

ERFOLGREICH: Der geplante Task "Sicherheitsskript" wird
ausgeführt ......
So führen Sie einen Task auf einem Remotecomputer aus
Der folgende Befehl startet den Task Update auf einem Remotecomputer,
Svr01:

schtasks /run /tn Update /s Svr01

In diesem Fall zeigt SchTasks.exe die folgende Fehlermeldung an:

FEHLER: Der geplante Task "Update" kann nicht ausgeführt werden.
Suchen Sie im Transaktionsprotokoll für geplante Tasks,
C:WindowsSchedLgU.txt on Svr01, nach der Ursache des Fehlers. In
diesem Fall wird der folgende Eintrag im Protokoll angezeigt:


"Update.job" (update.exe) 3/26/2001 1:15:46 PM ** FEHLER **
Unter dem Konto, das dem Task zugeordnet ist, war keine Anmeldung
möglich. Der Task wurde daher nicht ausgeführt.
Der genaue Fehler ist:
0x8007052e: Anmeldung fehlgeschlagen: Unbekannter Benutzername oder
falsches Kennwort.
Stellen Sie sicher, dass der Wert im Feld ""Ausführen als"" und das
Kennwort des Tasks gültig sind, und wiederholen Sie den Vorgang.

Anscheinend sind der Benutzername oder das Kennwort im Task für das
System nicht gültig. Der folgende Befehl schtasks /change aktualisiert
den Benutzernamen und das Kennwort für den Task Update auf Svr01:

schtasks /change /tn Update /s Svr01 /ru Administrator /rp PassW@rd3

Nach Abschluss des Befehls change wird der Befehl run wiederholt.
Dieses Mal wird das Programm Update.exe gestartet, und SchTasks.exe
zeigt die folgende Meldung an:

ERFOLGREICH: Der geplante Task "Update" wird ausgeführt......
schtasks end

Beendet ein von einem Task gestartetes Programm.

Syntax
schtasks /end /tn Taskname [/s Computer [/u [Domäne\]Benutzer /p
Kennwort]] /?

Parameter
/tn Taskname
Identifiziert den Task, der das Programm gestartet hat. Dieser
Parameter ist erforderlich.
/s Computer
Gibt den Namen oder die IP-Adresse eines Remotecomputers an (mit oder
ohne umgekehrte Schrägstriche). Die Standardeinstellung ist der lokale
Computer.
/u [Domäne\]Benutzer
Führt den Befehl mit den Berechtigungen des angegebenen Benutzerkontos
aus. Standardmäßig wird der Befehl mit den Berechtigungen des
Benutzers ausgeführt, der an dem Computer angemeldet ist, der SchTasks
ausführt.
/p Kennwort
Gibt das Kennwort des im Parameter /u angegebenen Benutzerkontos an.
Dieser Parameter ist erforderlich, wenn der Parameter /u verwendet
wird.
/?
Zeigt die Hilfe an.
Hinweise
Verwenden der Befehlszeilenoptionen /s, /u und /p Die
Befehlszeilenoptionen /u und /p stehen nur zur Verfügung, wenn Sie /s
verwenden. Sie müssen /p mit /u verwenden, um das Kennwort des
Benutzers anzugeben.
SchTasks.exe beendet nur die Instanzen eines Programms, die von einem
geplanten Task gestartet wurden. Verwenden Sie TaskKill, ein in
Windows XP Professional enthaltenes Tool, um andere Prozesse zu
beenden. Weitere Informationen zu TaskKill finden Sie unter
Taskkill..
Beispiele
So beenden Sie einen Task auf einem lokalen Computer
Der folgende Befehl stoppt die Instanz von Notepad.exe, die vom Task
Mein Editor gestartet wurde:

schtasks /end /tn "Mein Editor"

Als Reaktion stoppt SchTasks.exe die vom Task gestartete Instanz von
Notepad.exe und zeigt die folgende Erfolgsmeldung an:

ERFOLGREICH: Der geplante Task "Mein Editor" wurde erfolgreich
beendet.
So beenden Sie einen Task auf einem Remotecomputer
Der folgende Befehl stoppt die Instanz von Internet Explorer, die vom
Task InternetAn auf dem Remotecomputer Svr01 gestartet wurde:

schtasks /end /tn InternetAn /s Svr01

Als Reaktion stoppt SchTasks.exe die vom Task gestartete Instanz von
Internet Explorer und zeigt die folgende Erfolgsmeldung an:

ERFOLGREICH: Der geplante Task "InternetAn" wurde erfolgreich beendet.
schtasks delete

Löscht einen geplanten Task.

Syntax
schtasks /delete /tn {Taskname | *} [/f] [/s Computer [/u [Domäne
\]Benutzer /p Kennwort]] [/?]

Parameter
/tn {Taskname | *}
Identifiziert den zu löschenden Task. Dieser Parameter ist
erforderlich. Wert Beschreibung
Taskname Löscht den benannten Task.
* Löscht alle geplanten Tasks auf dem Computer.

/f
Unterdrückt die Bestätigungsmeldung. Der Task wird ohne Warnung
gelöscht.
/s Computer
Gibt den Namen oder die IP-Adresse eines Remotecomputers an (mit oder
ohne umgekehrte Schrägstriche). Die Standardeinstellung ist der lokale
Computer.
/u [Domäne\]Benutzer
Führt den Befehl mit den Berechtigungen des angegebenen Benutzerkontos
aus. Standardmäßig wird der Befehl mit den Berechtigungen des
Benutzers ausgeführt, der an dem Computer angemeldet ist, der SchTasks
ausführt.
/p Kennwort
Gibt das Kennwort des im Parameter /u angegebenen Benutzerkontos an.
Dieser Parameter ist erforderlich, wenn der Parameter /u verwendet
wird.
/?
Zeigt die Hilfe an der Eingabeaufforderung an.
Hinweise
Verwenden der Befehlszeilenoptionen /s, /u und /p Die
Befehlszeilenoptionen /u und /p stehen nur zur Verfügung, wenn Sie /s
verwenden. Sie müssen /p mit /u verwenden, um das Kennwort des
Benutzers anzugeben.
Der Vorgang delete löscht den Task aus dem Zeitplan. Er löscht nicht
das Programm, das der Task ausführt, und unterbricht kein ausgeführtes
Programm.
Der Befehl delete * löscht alle für den Computer geplanten Tasks,
nicht nur die vom aktuellen Benutzer geplanten Tasks.
Beispiele
So löschen Sie einen Task aus dem Zeitplan eines Remotecomputers
Der folgende Befehl löscht den Task "Mail starten" aus dem Zeitplan
eines Remotecomputers. Er verwendet den Parameter /s, um den
Remotecomputer zu identifizieren.

schtasks /delete /tn "Mail starten" /s Svr16

Als Reaktion zeigt SchTasks.exe die folgende Bestätigungsmeldung an:
Geben Sie j ein, um den Task zu löschen. Geben Sie n ein, um den
Befehl abzubrechen.

WARNUNG: Sind Sie sicher, dass der Task "Mail starten" entfernt werden
soll (J/N )? j
ERFOLGREICH: Der geplante Task "Mail starten" wurde erfolgreich
gelöscht.
So löschen Sie alle für den lokalen Computer geplanten Tasks
Der folgende Befehl löscht alle Tasks aus dem Zeitplan des lokalen
Computers, einschließlich von anderen Benutzern geplante Tasks. Er
verwendet den Parameter /tn *, um alle Tasks auf dem Computer
darzustellen, und den Parameter /f, um die Bestätigungsmeldung zu
unterdrücken.

schtasks /delete /tn * /f

Als Reaktion zeigt SchTasks.exe die folgende Erfolgsmeldung an, die
darauf hinweist, dass der einzige geplante Task, Sicherheitsskript,
gelöscht wurde.

ERFOLGREICH: Der geplante Task "Sicherheitsskript" wurde erfolgreich
gelöscht.
schtasks query


Gruesse,

Steffen

Re: Task ein- und ausschalten

am 13.11.2007 11:21:09 von Thomas Kratz

Ferry Bolhar wrote:
> Hallo,
>
> auf einem Windows-System läuft mit schöner Regelmäßigkeit ein über den
> Taskplaner gesteuerter Job.
>
> Ich müsste nun ein Perl-Skript schreiben, das
>
> -) diesen Job bei Bedarf aktiviert/deaktiviert,
>
> -) das von einem anderen Rechner aus tut.

Offensichtlich wäre:

http://search.cpan.org/~unicolet/Win32-TaskScheduler2.0.3/

Thomas

--
$/=$,,$_=,s,(.*),$1,see;__END__
s,^(.*\043),,mg,@_=map{[split'']}split;{#>J~.>_an~>>e~...... >r~
$_=$_[$%][$"];y,<~>^,-++-,?{$/=--$|?'"':#..u.t.^.o.P.r.>ha~.e..
'%',s,(.),\$$/$1=1,,$;=$_}:/\w/?{y,_, ,,#..>s^~ht<._..._..c....
print}:y,.,,||last,,,,,,$_=$;;eval,redo}#.....>.e.r^.>l^..>k ^.-