forgottenrealm
Goto Top

Mit Batch Geplante Tasks auslesen und bestimmte löschen

Hallo


Ich arbeite gerade an einem Sicherungsprogramm in VBA, welches über robocopy sichern soll und gleichzeitig auch über die schtasks.exe von Windows das Planen von Sicherungen möglich machen soll.

Jetzt benötige ich eine Funktion, die alle von diesem Sicherungsprogramm erstellten Tasks finden und löschen kann.

Mit schtasks /delete geht es leider nicht so eifnach, da ich keine Wildcards (*) verwenden kann.


Die Tasks heissen, bis auf das letzte Stück alle gleich, was die Suche schonmal vereinfachen sollte.

Beispiel;

"Firma - Sicherung - *"

"Firma - Sicherung - " sind immer gegeben, nur die letzten
* ändern sich.


Bisher bin ich soweit gekommen;


Dim AlleSicherungenLoeschen

AlleSicherungenLoeschen = shell (Schtasks /query > " & CurrentProject.path & "\Batch\" & Sicherungsname & _ & Temp.txt & "), vbHide

find "Blabla - Sicherung - *" " & CurrentProject.path & "\Batch\" & Sicherungsname & _ & Temp.txt & "


Jetzt müsste ich ...

- Die dem Beispiel entsprechenden Sicherungen aus der Textdatei in eine neue Textdatei extrahieren
- Die extrahierten Zeilen soweit umwandeln, dass nur noch "Firma - Sicherung - " sowie die jeweilige Sicherung, in der Textdatei stehen. Beispiel: "Firma - Sicherung - Donnerstag"
- Diese Zeilen in eine Batchdatei bringen, welche es ermöglicht, alle im Taskplaner gefundenen Sicherungen die mit "Firma - Sicherung - " anfangen zu löschen.


Unter Windows XP ging es einfach, da man den Ordner, in welchem die Tasks gespeichert waren, direkt ansprechen konnte (%WINDIR%\Tasks\ ...")


Klingt alles etwas konfus, aber vielleicht versteht ihr ja was ich meine.


Gibt es eine Möglichkeit, das Ganze unter Batch zu lösen ?

Content-Key: 125946

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

Printed on: April 19, 2024 at 02:04 o'clock

Mitglied: 60730
60730 Sep 28, 2009 at 13:26:53 (UTC)
Goto Top
Servus,

Klingt alles etwas konfus, aber vielleicht versteht ihr ja was ich meine.
nicht ganz...
Unter Windows XP ging es einfach

Soll das unter Vista laufen, oder wie ist diese Zeile zu verstehen?

Gibt es eine Möglichkeit, das Ganze unter Batch zu lösen ?

Es gibt AT und schtasks

"normalerweise" nutzen jedoch die wenigsten heute noch AT - von daher würde ich das ganze dann mit At erledigen.

Gruß
Member: ForgottenRealm
ForgottenRealm Sep 28, 2009 at 13:57:05 (UTC)
Goto Top
Hi

Ich dachte mir schon, dass es nicht ganz einfach wird, das Vorhaben zu erklären.

Die Sache sieht so aus ... ich möchte aus dem Taskmanager (unter Windows XP/Vista/Seven) alle Tasks löschen, die eine bestimmte Beschreibung haben.

Beispiel;

"Test - Sicherung - System"
"Test - Sicherung - Ablage"
"Test - Sicherung - Daten"

Der teil mit "Test - Sicherung - " ist immer fest vergeben, nur der letzte Teil soll über Wildcards gelöscht werden.

Mit schtasks /delete /TN "Test - Sicherung - *" funktioniert das nicht.

Mir reichts fürs erste, wenn ich das in Batch habe.

AT funktioniert irgendwie nicht, ich bekomme immer wieder die Syntax angezeigt wenn ich eingebe;

at "Test - Sicherung - System" /DELETE
at /DELETE "Test - Sicherung - System"
at Test /DELETE
at /DELETE Test

Keines der Beispiele funktioniert.
Mitglied: 60730
60730 Sep 28, 2009 at 14:22:30 (UTC)
Goto Top
servus,

wie immer- wenn gar nüx geht...

das pipen der Schtasks in eine Datei und das filtern mittels findstr in eine andere und dann mit den Inhalten wiederum alle löschen...

Klappt immer.

At & Schtasks sind eigenständige Funktionen.
Ergo: at & schtasks funktonieren gemeinsam, aber mit at kann man nur zeitpläne löschen, die vorher via at auch angelegt wurden.

Von daher probiers doch mal aus.
at /?

Gruß
Member: DerWoWusste
DerWoWusste Sep 29, 2009 at 21:44:23 (UTC)
Goto Top
Hallo. Nur eine kurze Anmerkung:
Unter Windows XP ging es einfach, da man den Ordner, in welchem die Tasks gespeichert waren, direkt ansprechen konnte (%WINDIR%\Tasks\ ...")
Unter Vista und W7 sollte das auch so gehen. Schau auch rein unter %windir%\System32\Tasks
Noch eine: Tasks lassen sich auch schön über GPPs erstellen, ändern und löschen. In Deinem Fall bringt das jedoch nichts nachträglich.
Member: mwieapfel
mwieapfel Jan 15, 2013 updated at 21:59:40 (UTC)
Goto Top
Hallo allerseits,

das Thema ist zwar schon etwas älter, aber ich hab da was noch nicht richtig verstanden:
Ich möchte auf verschiedenen Netzwerk-Computern überprüfen, welche Tasks geplant sind und bestimmte davon löschen:
Es gibt auf den Rechnern entweder keine oder eine unterschiedliche Anzahl von Tasks, die durchnumeriert sind (Taskname1, Taskname2...)
mit query kann ich die Tasks anzeigen und in ein logfile ausgeben.
per Hand (über cmd) kann ich genau benannte Tasks oder alle löschen.
Wie kann ich bei Taskname eingeben, dass ich Taskname1-22 löschen möchte (soweit vorhanden) (und dabei andere Tasks bestehen lasse)? Taskname* funktioniert nicht.
Kann mir da jemand ein wenig weiterhelfen?

Schon mal vielen Dank,
mwieapfel
Member: DerWoWusste
DerWoWusste Jan 16, 2013 updated at 08:30:45 (UTC)
Goto Top
Moin.

Mach einen eigenen Thread auf, diesen nach über 3 Jahren wiederzubeleben ist keine gute Art.+

Erläutere darin näher, was
Wie kann ich bei Taskname eingeben, dass ich Taskname1-22 löschen möchte (soweit vorhanden) (und dabei andere Tasks bestehen lasse)?
bezogen auf konkrete Beispiele bedeuten würde, damit ich es mir besser vorstellen kann.
Member: mwieapfel
mwieapfel Jan 16, 2013 at 09:18:25 (UTC)
Goto Top
Hallo,

mach ich, danke