juergenl
Goto Top

Versagen des Zeitplan-Programme "AT"

AT funktioniert nicht ...

Hallo,

ich versuche, über die DOS Befehlszeile mit Hilfe des Programmes 'AT' zu einer vorgegebenen Uhrzeit einen geplanten Befehl abzusetzen:

AT 08:33:00 "DOS-Befehl"

darauf erhalte ich sofort eine Bestätigung:

"Neuer Auftrag hinzugefügt. Kennung = 1"

Trotzdem wird dieser Befehl nie ausgeführt. Bei der Nachschau in den "Ereignissen" finde ich folgenden Eintrag:

"Ereignis 7901

Der Befehl "At1.job" konnte aufgrund folgenden Fehlers nicht ausgeführt werden:
Das System kann die angegebene Datei nicht finden."

( ... letzteres ist ganz sicher aber unzutreffend.)

Der unter den Systemereignissen angegebene Verweis auf den MS-Support führt diesmal auf eine leere Seite, auch anderweitige Suche nach dem "Ereignis 7901" führen leider zu nichts.

Hat jemand einen Rat für mich?

Danke im Voraus und beste Grüße

Jürgen

Content-ID: 27843

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

Ausgedruckt am: 13.11.2024 um 11:11 Uhr

Atti58
Atti58 10.03.2006 um 08:50:55 Uhr
Goto Top
... poste doch bitte mal die gesamte Zeile, genau so, wie Du sie eingegeben hast im Original,

Gruß

Atti.
Juergenl
Juergenl 10.03.2006 um 09:00:30 Uhr
Goto Top
Guten Morgen!

Die Befehlszeile sieht genau so aus:

AT 09:00:00 C:\netzwerk.bat

Ich denke, der AT Befehl läßt das auf dem lokalen PC zu ?

Beste Grüße

Jürgen
Atti58
Atti58 10.03.2006 um 09:09:25 Uhr
Goto Top
Laut Hilfe ist die korrekte Syntax:

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

at [[\\ComputerName] hours:minutes [/interactive] [{/every:date[,...]|/next:date[,...]}] command]
"

also ohne Sekunden,

Gruß

Atti
Juergenl
Juergenl 10.03.2006 um 09:31:19 Uhr
Goto Top
Laut Hilfe ist die korrekte Syntax:

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

at [[\\ComputerName] hours:minutes
[/interactive]
[{/every:date[,...]|/next:date[,...]}]
command]
"

also ohne Sekunden,

Hallo Atti, - dankeschön!

Auch DAS habe ich soeben probiert, aber leider war's das NICHT. (So ein einfacher Fehler wär' ja auch zu schön gewesen g)

Ich gehe also davon aus, daß Dir an meiner Befehlszeile sonst nichts Verdächtiges aufgefallen ist?

Ich habe bei meinen weiteren Versuchen im übrigen festgestellt, daß das Programm zwar nicht gestartet wird, daß aber auch keine Ereigniseinträge mehr vorgenommen werden.

Das beschriebene Verhalten beobachte ich so übrigens genau so auch auf einem zweiten Rechner mit WIN XP.

Alles ein bißchen seltsam, was ?

Beste Grüße

Jürgen
Atti58
Atti58 10.03.2006 um 11:09:55 Uhr
Goto Top
Warum benutzt Du denn nicht die "Geplanten Tasks"? Da hast Du doch viel mehr Möglichkeiten?

Gruß

Atti
djbrandt
djbrandt 10.03.2006 um 11:59:51 Uhr
Goto Top
Hi,

was für ein OS läuft auf dem Rechner?

Ist die Platte c: mit NTFS formatiert und hat SYSTEM Zugriff auf die Datei???

Was soll die Batch machen?

Öffne bitte mal den Explorer und wechlse nach %systemroot%\tasks und schau mal, ob da zu dem AT-Job noch der Eintrag drin steht mit <Running> oder "Gestartet"

Wenn ja, fehlt entweder der Schalter /interactive oder die Batch hängt im Nirvana, weil der User SYSTEM kein Zugriff auf das Netwerk hat.

Solange der Job läuft, zeigt Dir der Aufruf von AT immer an, der Job würde noch nicht gestartet sein, obwohl die Startzeit schon überschritten ist.


Grüße

Dieter
Juergenl
Juergenl 10.03.2006 um 12:02:13 Uhr
Goto Top
Warum benutzt Du denn nicht die
"Geplanten
Tasks
"? Da hast Du doch viel
mehr Möglichkeiten?

Hallo Atti,

das ist auf den ersten Blick eine sehr berechtigte Frage, - ABER ...

Ich will mit Hilfe des per 'AT' angestoßenen Batch-Programms freigegebene Netzlaufwerke auf zwei Workstations bewußt einmal kurz trennen, dann definiert neu verbinden.

Das soll dann vor sich gehen, wenn beide Maschinen nach dem Starten komplett hochgefahren sind. Dafür habe ich mir ausgedacht, dies etwa zwei Minuten nach Systemstart vorzunehmen. (Die schlichte Anweisung "Bei Systemstart" aus "Geplante Tasks" passiert nämlich für eine der Maschinen noch zur Unzeit!)

Zur Lösung dieser Aufgabe ist 'AT', - wie Zeitabhängigkeiten generell - eigentlich auch nicht Erste Wahl.

Aber schließlich müßte es ja wohl gelingen, so ein Allerwelts-Programm zum Funktionieren zu bringen ... g

Danke für Deine Hilfe und beste Grüße

Jürgen
Juergenl
Juergenl 10.03.2006 um 12:12:27 Uhr
Goto Top
Hallo Dieter!

was für ein OS läuft auf dem Rechner?
Ist die Platte c: mit NTFS formatiert und
hat SYSTEM Zugriff auf die Datei???

- OS ist WIN XP pro SP2,
- das Laufwerk C: ist NTFS-formatiert,
- auf die Batchdatei hätte ggf. JEDER Zugriff.

Was soll die Batch machen?

Die Batch soll Netzlaufwerke einmal trennen, dann definiert wieder verbinden (dies hat seine Gründe, die Erläuterung würde hier aber zu weit führen.)

Danke sehr für Deine weiteren Hinweise! Denen werde ich schnellstens nachgehen.

Beste Grüße

Jürgen
Atti58
Atti58 10.03.2006 um 12:57:48 Uhr
Goto Top
... na, dann bau einfach ein "delay" ein, ich habe da vor Jahren mal 'ne kleine EXE (58 KB) verfasst, die kann ich Dir gerne schicken,

Gruß

Atti
Juergenl
Juergenl 11.03.2006 um 12:53:12 Uhr
Goto Top
Hallo Dieter, guten Tag allerseits,

nach Deinen Hinweise sehe ich klarer: Geplante Jobs werden durch 'AT' zwar in ...\tasks eingetragen. Allerdings konnten sie in meinem Anwendungsfall nicht abgearbeitet werden, hingen dort also fest, wie Du auch geargwöhnt hast.

Ich muß - so vermute ich - also dafür sorgen, dass der User 'SYSTEM' ( der ja hier statt meiner am Werk ist!), die Berechtigung erhält, auf Netzverbindungen zuzugreifen.

Daran werkele ich jetzt mit den Parametern von NET USE ...

Beste Grüße, schönes Wochenende!

Jürgen
djbrandt
djbrandt 12.03.2006 um 20:04:16 Uhr
Goto Top
Hi Jürgen,

ich glaube nicht, dass dies funktionieren wird. Der SYSTEM-Account ist ein lokaler Account und hat ohne viel Trickserei keine Rechte auf anderen Systemen.

Mein Vorschlag:
Definiere den Job über den Taskscheduler mit einem Domain-Account, der das Recht hat die Laufwerksverbindung zu trennen und wieder zu verbinden.
Startet den Job über "Beim Systemstart" wie Du oben schon erwähnst hast und baue über "sleep 120 " eine Verzögerung von 2 Minuten ein. Oder länger, je nach Bedarf
Der Vorteil über den Tastscheduler ist, dass Du beim "net use" dann keinen User und Passwort im Klartext in der Batch-Datei hast.


Grüße
Dieter
Juergenl
Juergenl 13.03.2006 um 10:19:59 Uhr
Goto Top
Hallo Dieter, Gruß auch in die Runde!

Danke auch für Deine weitere Hilfe, natürlich hast Du damit Recht! Ich habe hiernach weiter systematisch nachgedacht (g), so vor allem auch getestet: Damit kann ich möglichen Konflikten zwischen dem von 'AT' angeworfenen User 'SYSTEM' und Netz-Operationen jetzt völlig aus dem Weg gehen.

Nach diesem Aha-Hinweis auf 'SYSTEM' ist mir auch klar, daß man diesem "User" unter 'AT' sehr präzise Angaben (z.B. Pfade) machen muß, die er à priori gar nicht kennt: Andernfalls passiert es, daß ein Task - in der Liste erkennbar - zwar gestartet wird, aber "... nicht durchgeführt werden kann."

Mit diesem Wissen kriege ich meinen Netzwerkstart jetzt auch mehr aufgrund logischer Zusammenhänge in den Griff. Wenn die Lösung auch handwerklich fertig ist, stelle ich sie gern einmal vor.

Danke nochmal und beste Grüße

Jürgen