kontext
Goto Top

Geplante Aufgabe erstellen - VBS

Hallo Leute,
Hallo Programmier-Profis face-smile face-big-smile

Ich arbeite zur Zeit an einem kleinen VB-Script und bin nun auf eine kleine Hürde gestoßen.
Ich möchte gerne einen Scheduled Task aus dem VB-Script erstellen lassen, jedoch habe ich keine "richtige" Zeitplanung.

Ich habe keine festen Wochentage oder Monate welche ich hinterlegen kann, sondern nur einen Zeitraum.
Hintergrund ist jener: das Script muss in einem bestimmten Intervall gestartet werden, und es soll ein Pop-Up erscheinen zur Erinnerung.

Grob überrissen:
  1. Skript wird heute ausgeführt
  2. Jetzt soll in 25 Tagen eine Erinnerung kommen (mittels Scheduled Task - bei Anmeldung oder um xx:xx Uhr)
  3. User wird somit erinnert und kann das Skript dann wieder von Hand ausführen
  4. Jetzt muss der Scheduled Task gelöscht werden und erneut ein Task mit 25 Tagen erstellt werden - usw.

Ich hoffe ich habe mich korrekt ausgedrückt bzw. ihr versteht mich.
Hätte für mich jemand einen Code-Schnippsel bei der Hand bzw. einen Tipp wo ich suchen kann?
schtasks nützt mir leider nichts, da ich keine xx Tage definieren kann
... und mit dem Code-Schnippsel von Technet Technet-Artikel komme ich auch nicht weiter

Gruß
@kontext

Content-Key: 292220

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

Printed on: May 7, 2024 at 09:05 o'clock

Member: TlBERlUS
TlBERlUS Jan 05, 2016 at 09:12:19 (UTC)
Goto Top
Hi,

mit PowerShell sollte das einfacher gehen.
http://blog.stefanrehwald.de/2013/06/12/powershell-08-ein-schedule-task ...

Das PopUp kannst du mit msg.exe erstellen.

Grüße,

Tiberius
Mitglied: 114757
Solution 114757 Jan 05, 2016 updated at 13:29:34 (UTC)
Goto Top
Moin,
Zitat von @kontext:
schtasks nützt mir leider nichts, da ich keine xx Tage definieren kann
klar geht das ..., einfach vorher das Zieldatum mit DateAdd() berechnen face-smile

Task hinzufügen:
Set objShell = CreateObject("Wscript.Shell")  
dateNext = DateAdd("d",25,Date)  
d = Right("0"&Day(dateNext),2) & "/" & Right("0"&Month(dateNext),2) & "/" & Year(dateNext)  
objshell.Run "schtasks /Create /TN Benachrichtigung /TR ""msg * Achtung Aufgabe ausführen"" /SD " & d & " /ST 12:00 /SC EINMAL /Z /V1 /RU SYSTEM",0,True  
Der Task löscht sich dann nach dem Ausführen durch den Parameter /z selbst.

Gruß jodel32
Member: kontext
kontext Jan 05, 2016 at 13:12:10 (UTC)
Goto Top
Hallo @TlBERlUS,

ich will aber kein VBS aus dem Scheduled Task starten sondern will mittels VBS einen Scheduled Task erstellen.
Außerdem kann ich leider nicht auf PowerShell zurückgreifen - darum bin ich auf der Suche nach einer VBS-Lösung.

Danke @114757,

leider funktioniert der Code nicht auf Anhieb (Scheduled Task wird nicht erstellt).
Jedoch weiß ich nun in welche Richtung ich suchen muss. face-smile

Danke nochmals
@kontext
Mitglied: 114757
Solution 114757 Jan 05, 2016 updated at 13:25:48 (UTC)
Goto Top
Zitat von @kontext:
leider funktioniert der Code nicht auf Anhieb (Scheduled Task wird nicht erstellt).
Kann ich nicht bestätigen wird hier problemlos erstellt ...
Jedoch weiß ich nun in welche Richtung ich suchen muss. face-smile
Was hast du daran angepasst oder geändert ?

p.s. lass mal das /Z am Ende weg ...
Member: kontext
kontext Jan 05, 2016 at 13:25:38 (UTC)
Goto Top
Zitat von @114757:
Kann ich nicht bestätigen wird hier problemlos erstellt ...

Der Task wird bei mir nicht erstellt. face-smile
Habe es nun durch ein einfaches ECHO ersetzt ...
... das Datum wird Problemlos mit 30.01.2016 angezeigt - sprich ich muss beim schtask suchen face-smile

Und wie du schon richtig gesagt hast, es lag am Parameter Z ...
... ohne Parameter wird der Task ohne Probleme angelegt ...

Alles andere ist nun "Feintuning" - das grundlegene Problem und somit die Frage wurde gelöst
Gruß
@kontext
Mitglied: 114757
Solution 114757 Jan 05, 2016 updated at 13:37:04 (UTC)
Goto Top
Zitat von @kontext:
Und wie du schon richtig gesagt hast, es lag am Parameter Z ...
... ohne Parameter wird der Task ohne Probleme angelegt ...
Hab die Parameter nochmal angepasst damit auch /Z (das automatische Löschen der Aufgabe) funktioniert, es fehlten noch weitere Parameter.
Der Grund: https://support.microsoft.com/en-us/kb/2004151

Gruß jodel32
Member: kontext
kontext Jan 05, 2016 at 13:51:52 (UTC)
Goto Top
Hallo @114757,

perfekt - Wobei ich das Löschen auch mittels schtask /Delete erledigen könnte. face-smile
Wie gesagt - Feintuning face-wink

Was mir noch aufgefallen ist.
Was passiert wenn der Client an dem Tag nicht läuft (zum Beispiel aufgrund Wochenende oder warum auch immer) face-smile
Bei der Einstellungen kann ich ja den Haken bei "Aufgabe so schnell wie möglich nach einem verpassten Start ausführen" ...
... wäre das eine Lösung und kann ich das schtasks mitgeben?

Gruß
@kontext
Mitglied: 114757
114757 Jan 05, 2016 updated at 13:55:25 (UTC)
Goto Top
Am einfachsten du erstellst dir manuell einmalig einen Task im Taskplaner exportierst den nach XML und dann erstellst du Ihn via schtasks und gibts den Pfad zur XML mit dem Parmeter /XML mit.
Member: kontext
kontext Jan 05, 2016 at 13:56:50 (UTC)
Goto Top
Stimmt face-smile
Manchmal hat man ein Brett vorm Kopf ...

Gruß
@kontext