Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Suche Möglichkeit per Skript mehrfache Zeitpläne eines eingerichteten Tasks zu erzeugen

Frage Entwicklung Batch & Shell

Mitglied: AndreasA

AndreasA (Level 1) - Jetzt verbinden

15.08.2008, aktualisiert 26.09.2008, 5780 Aufrufe, 4 Kommentare

Trotz intensiver Recherche im Internet bin ich zu obigen Problem nicht fündig geworden. Da mir hier schon viele Berichte zu Lösungen verholfen haben, hoffe ich diesmal wieder ausreichend Hilfe zu bekommen. Vorab also schonmal recht herzlichen Dank für eure Mühen.

Ausgangssituation:
Ich habe auf einem Windows 2003 R2 Server (sagen wir mal FS001) mehrere eingerichtete Tasks. Die meisten davon sind schon mit den Standardzeitplänen (wie z.B. "wöchentlich MI und FR 5:00" oder "täglich 5:30" ) ausgestattet. Nun ist sind noch einige Tasks dazugekommen, die ich mit diesen Standardzeitplänen nicht versorgen kann. D.h. ich habe sie als "EINMAL" mit mehrfachen Zeitplänen als Tagesdatum angelegt über den normalen graphischen Assistenten. Hintergrund nicht jede Woche finden diese "Jobs" an den gleichen Wochentagen statt. (z.B. eine Woche Mo-Do 21 Uhr, nächste Woche Mo-Fr 21Uhr, die darauffolgende Woche nur noch Di-Do 21 oder 22 Uhr o.ä.). Wann dieser Job also auszuführen ist, erfahre ich rechtzeitig mindestens 1 Woche vorher. Selbst tageweise unterschiedliche Startzeit kann vorkommen. Wichtig warum das ganze : Ich darf diese Tasks nur dann ausführen lassen, wenn der Auftrag vom Kunden vorliegt. Eine professionelle Zeitplansteuerung wurde leider nicht bewilligt.

Problembeschreibung:
Damit ich nicht jedesmal den Assistenten benutzen muss (jeder Mausklick ist eine potentielle Fehlerquelle ), suche ich nun einen Möglichkeit dieses per Skript zu lösen. Die at.exe von Windows hilft mir da gar nichts. Mit der schtasks.exe komme ich leider auch nicht zum Ziel. Ich kann mir zwar mit
schtasks.exe /query /s FS001 /v /FO TABLE
eine komplette Liste erzeugen wo alle eingerichteten Zeitpläne sichtbar sind, aber mit
schtasks.exe /change
kann ich leider keine Zeitpläne verändern und mit
schtasks.exe /create
kann ich nur vorhandene Jobs ersetzen. Das wäre zwar eine Möglichkeit, jedoch mangelt es hier an der Fähigkeit mehrfache Zeitpläne für einen Job anzulegen. Als Hilsfmittel sei noch folgende Anmerkung gestattet. Diese "ProblemJobs" sind parametergesteuert nach Datum, d.h. für jeden dieser Jobs gibt es sozusagen als Pendant eine datumsgleiche Jobliste (z.B. 20080815.txt für den 15.August).

Lösungssuche ?
Die MSDN von Microsoft gibt da leider auch wenig Hoffnung dieses "Problem" mittels schtasks.exe hinzubekommen. Nun hoffe ich hier auf Unterstützung von Euch. Ich sehe im Moment den Wald vor lauter Bäumen nicht mehr. Vielleicht läßt sich dies auch mit einem batchgesteuerten VB-Schnipsel lösen. Bin für jede Anregung dankbar. Also liebe Mitstreiter: man bekommt nicht immer die Werkzeuge als Admin, die man gerne hätte, lasst es uns wie immer mit "eigenen Werkzeugen" erreichen

Edit 15.8.2008

Aufgrund von Anfragen nochmal konkretere Angaben:

  • Die einfache Lösung für jeden Tag einen eigenen Task anzulegen, kenne ich. Aber die Liste der angelegten Tasks wird dann erstens sehr lang und unübersichtlich und zweitens bei Änderung des "auszuführenden Benutzers" (Name/Kennwort) müssten alle schon angelegten Zeitpläne erneuert werden.
  • Die Liste klein zu halten und nur auf "logische Aufgaben" mit mehrfachen Zeitplänen zu beschränken, ist ja auch schon gegeben mittels des graphischen Assistenten von Windows (geplante Tasks)
  • es geht hier vordringlich darum, diese mehrfachen Zeitpläne eines schon eingerichteten Tasks per Skript und nicht per Assistenten zu erstellen.


Ich hoffe nun versteht jeder mein Hilfeersuchen ?

Edit 15.9.2008 Hat den keiner eine Idee???
Mitglied: 60730
24.09.2008 um 19:49 Uhr
Edit 15.9.2008 Hat den keiner eine Idee???

doch - und zwar die kombination von schtasks.exe für die "festen" Jobs und AT für die variablen.

Ein batch könnte dann so aussehen:

01.
set /P DATEI=auszuführende Datei: 
02.
if not exist %datei% echo Datei nicht vorhanden. 
03.
set /P tag=auszuführender Tag (Mo Di Mi Do Fr Sa So): 
04.
set /P zeit=auszuführende Uhrzeit hh:mm: 
05.
at %zeit% /INTERACTIVE /next:%tag% "%datei%"

Gruß
Bitte warten ..
Mitglied: AndreasA
25.09.2008 um 13:04 Uhr
Hallo TimoBeil,

Danke erst einmal für deinen Vorschlag. Leider führt mich wie bereits oben erwähnt AT.exe nicht zum Ziel. Denn die bereits angelegten Windows-Tasks (siehe Systemsteuerung-->Geplante Tasks) werden nur mittels schtasks /query auch angezeigt. AT gibt nichts davon aus ( Es sind keine Einträge in der Liste vorhanden ).
Diese "Jobs" heissen immer gleich sind quasi nur ein Job! Es ist ein sogenanntes Jobstart-Skript (sagen wir mal C:\BATCH\Jobstart.cmd, Taskname JOBSTART). Diese rufen dann wiederum andere "Batches" in der datumsgleichen Auftragsliste (z.B. job20080815.txt) vom Kunden festgelegt sind.

Zur Veranschaulichung meines Problem am besten mal mit dem Windows-Taskassistenten folgendes mal ausprobieren:
zum Testen eine (leere) Textdatei namens C:\BATCH\JOBSTART.CMD anlegen
Dann mit dem Assistenten einen neuen Task anlegen
Taskname : JOBSTART
Registerkarte Task --> Ausführen: C:\BATCH\JOBSTART.CMD
Registerkarte Zeitplan --> Häkchen setzen bei "Mehrfache Zeitpläne aktivieren"
Alle weiteren Schritte auch unter Registerkarte Zeitplan mittels Button " Neu" wiederholt ausführen:
Task ausführen "Einmal"
Startzeit z.B. "21:00"
Ausführen am: Datum aus Kalender wählen
Button " Übernehmen" drücken

In der Dropdownliste unter der Registerkarte "Zeitplan" findet man nun alle "angelegten Zeitpläne" !!!!
Ich suche hier nun eine Möglichkeit genau diese in der Liste angezeigten Taskzeitpläne zu verändern per Skript (ohne den Assistenten !!!!)
Wie bereits erwähnt ein
schtasks.exe /query /s FS001 /v /FO TABLE >C:\Jobliste.txt
gibt mir all diese "Zeitpläne" als Tabelle aus (im Gegensatz zu AT).
Jedoch kann ich mit schtasks.exe diese nicht manipulieren (siehe meine Einleitung).
Wenn der Assistent dieses vermag muss es doch irgendeine VB / WMI / COM-Funktion geben dieses auch per Script zu tun oder ???

Grüße AndreasA
Bitte warten ..
Mitglied: 60730
26.09.2008 um 14:06 Uhr
Servus,
ich glaube - wir reden aneinander vorbei und anstatt - daß du meinen Tipp befolgst - gibts du mir einen - den ich schon kenne (und nicht benutze)
ich dosbox - nix klickibunti -wenns auch anders geht

Nochmal:

At & Schtasks sind unterschiedliche Funktionen.

Alles, was entweder per AT oder Schtasks angelegt wird - taucht auch unter schtasks auf.
Nur das, was unter AT angelegt wurde, taucht bei At auf / und - siehe obere Zeile - bei schtasks.

Ergo:

Alles "feste" per schtasks anlegen und alles variable mit AT.
btw:
mit einem Script, daß so ausshieht:

01.
:rem alle tasks löschen und "Zähler für neuen Taks auf null setzen 
02.
At /delete /yes 
03.
at zeit /INTERACTIVE /next:tag "datei1" 
04.
at zeit /INTERACTIVE /next:tag "datei2" 
05.
at zeit /INTERACTIVE /next:tag "datei3" 
06.
:rem usw usf 
07.
exit
...kannst du mehrere Tasks in einem rutsch anlegen - wenn dir der obere Weg nicht gefällt - dann kannst du diese .cmd verändern, um Jobs zu erzeugen.
"leider" bin ich der einzige, der dir geantwortet hat und "leider" ist die Procedur nicht nur "banal" und simpel - sondern auch schon etwas älter - dafür aber erprobt.

Entweder "traust" du dich das mal auszuprobieren - oder klickst weiter in dem Assistenten rum - oder jemand hat einen "besseren" Tipp.

Gruß
Bitte warten ..
Mitglied: AndreasA
26.09.2008 um 14:30 Uhr
Nein nein wir reden nicht aneinander vorbei
Ich habe deine Intention schon verstanden, jedoch ist sie für meinen Einsatzbereich nicht anwendbar. Mit AT kannst du keine speziellen Benutzer-Credentials hinterlegen. Und ich möchte auch keine ellenlange Liste von angelegten Tasks erzeugen, wenn ich oder meine Kollegen prüfen müssen ob alle Tasks korrekt angelegt sind bzw einzelne Tasks verändert werden müssen (warum auch immer). Diese Tasks mittels " mehrfachen Zeiplan " über den Taskassistenten anzulegen hat(te) durchaus mehrere Gründe, die ich hier auch nicht weiter ausführen möchte. Mir geht es in erster Linie darum, diese (inzwischen teilweise schon für Wochen im voraus angelegten) Zeitpläne skriptgesteuert verändern zu können. Du verstehst?

Im Prinzip suche ich eigentlich nur noch nach der Windowsfunktion/Prozedur die das tut. Vermutlich irgendeine WMI oder OBJ-Funktion die ich mittels VB oder so ansteuern müsste.

Trotzdem danke für deine ausführlichen Tips und ein schönes Wochenende
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
Suche passender Treiber (8)

Frage von stolli zum Thema Windows Server ...

LAN, WAN, Wireless
Frage zum Erzeugen eines portbasiertem VLAN (7)

Frage von presto-18 zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...