antonmuc
Goto Top

.bat iexplore funktioniert mit Doppelklick - nicht aber mit dem task scheduler

in meinen Augen alles richtig, aber es funktioniert dennoch nicht

Hallo Leute,

ich habe hier ein paar iexplore Befehle in einige .bat Dateien.

Was soll genau passieren?
- .bat Datei wird aus der Datenbank geschrieben
- diese enthält einen reinen url Aufruf "start /B iexplore "http://localhost/datenabholen.php?user=MeinUser&passwort=MeinPasswort&sprache=de"
- das .php Skript holt Daten per SOAP ab und speichert diese auf dem Server
- die SOAP Daten werden in die Datenbank importiert

-> Es ist kein direkter SOAP Aufruf aus der Datenbank möglich, das vorneweg face-wink.

Diese Systematik läuft bereits für mehrere Prozesse - einwandfrei
Nun habe ich aber einen Aufruf, der "zeitlich" gefühlt länger dauert.
Und dieser Aufruf läuft im "Task Scheduler" - Windows Server 2008 R2 NICHT!
Ein direkter Doppelklick funktioniert und der Internet Explorer wird gestartet und die Daten werden geladen+gespeichert.

Somit kann ich folgendes Eingrenzen
- .bat Datei ist gültig und funktioniert
- manueller Aufruf funktioniert und die Daten werden geladen
- Nur die Ausführung durch den "Task Scheduler" funktioniert nicht richtig (richtig deswegen, weil andere .php Seiten mit z.B. detaildatenabholung.php funktionieren).

Kann es ein "Timing" Problem sein?
Kann es sein, dass der Aufruf zu lange dauert und daher nichts gespeichert wird?

Bin für jeden Tipp dankbar.

Viele Grüße

Anton

Content-ID: 164263

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

filippg
filippg 09.04.2011 um 17:00:31 Uhr
Goto Top
Hallo,

sind die funktionierenden Dateien auch mit Task scheduler angelegt? Oder kann es sein, dass geschedulte Tasks grundsätzlich nicht funktionieren. Wenn ja:
Das könnte mit Berechtigungen zusammenhängen. Ich kenne das von Win2k3, vermute aber, unter Win2k8 hat man das beibehalten (oder eher verschärft):
1. cmd.exe: interaktiv angemeldete Nutzer haben das Execute-Recht (über Builtin-Account) auf der Datei (NTFS). Ein geschedulter Task ist aber nicht interaktiv angemeldet, deswegen kann der gleiche Benutzer, bei dem mit Doppelklick noch alles funktioniert eine Batch u.U. nicht ausführen. -> Execute-Recht im NTFS auf cmd.exe für den verwendete Account explizit vergeben.
2. Es gibt ein Privileg "Log on as a batch job" in den local Security Policies. Über dessen Notwendigkeit bin ich mir aber nicht sicher.

Gruß

Filipp
AntonMuc
AntonMuc 09.04.2011 um 17:39:35 Uhr
Goto Top
Hallo Filipp,

die .bat Dateien sind im Task scheduler mit den "run with highest privileges" angelegt - alle Tasks!
Es ist auch eingestellt "Run wheter user is logged on or not".


Neuer Test
- Task ausgewählt -> rechte Maustaste "run" ausgeführt -> nix tut sich

ABER meine Aussage, dass einige funktionieren muss ich wieder zurücknehmen.
Es läuft keine einzige .bat über den Task scheduler mit dem iexplore Aufruf

Scheibenkleister
99045
99045 09.04.2011 um 18:14:37 Uhr
Goto Top
Hallo, "Scheibenkleister", face-wink

Setze doch für den IE mal den kompletten Pfad ein und führe bei den Start-Befehl mit allen Parameter so aus, wie start das auf vorsieht: start /? oder help start in der Konsole.
Den vollständigen Pfad zu deine Batch-Datei hast du angegeben?

Gruß

PS. Den "Taskmanager" im Titel würde ich mal auf "Taksplaner" bzw. "Task Scheduler" ändern. face-wink
AntonMuc
AntonMuc 09.04.2011 um 18:56:07 Uhr
Goto Top
"Scheibenkleister" - der war gut face-wink

Titel habe ich geändert

Pfadangabe - im task scheduler ist es für DAUs ganz einfach - da mit "Browse" direkt auf die Datei gezeigt wurde - somit Tippfehler ausgeschlossen.
Trotzdem habe ich es im IE eingegeben - Ausführen/Speichern/... Somit ist der Pfad definitiv gültig.

start iexplore "Pfad"
oder
start /B iexplore "Pfad"
Der Befehl selbst funktioniert auch - bei Doppelklick der .bat Datei
Nur nicht mittels Task Scheduler - was ist denn da falsch? Mit den Rechten etwas?
Log des Task Schedulers:

EventData
TaskName \VdA
TaskInstanceId {CA2FFE59-6D97-4953-9849-BAD48741D5F8}
ActionName C:\Windows\SYSTEM32\cmd.exe
ResultCode 0

Somit kein Fehler - hmm ich werd nicht mehr. Das Log sagt alles in Ordnung und es sind keine Daten gespeichert.
Der Speicherort selbst ist für das PHP skript immer zugänglich, da es auf dem IIS läuft.

noch Tipps?

Hübscher
60730
60730 09.04.2011 um 21:49:35 Uhr
Goto Top
moin,

"start /B iexplore "http://localhost/datenabholen.php?user=Me ...;
ist "falsch"...
"start /B "datenabholen" iexplore "http://localhost/datenabholen.php?user=Me ...;  
aber watum eigentlich eine Batch dafür und nicht den IE mit den Parametern starten?

ABER meine Aussage, dass einige funktionieren muss ich wieder zurücknehmen.
Es läuft keine einzige .bat über den Task scheduler mit dem iexplore Aufruf

die Zeilen bestätigen meinen ersten Eindruck...

  • Unter welchem User werden diese Tasks aufgerufen?
  • melde dich mit dem User am Server an
  • starte den ie
  • wenn dann (wie vermutet) der "Was soll ich machen" Assi vom IE8 kommt - klicker dich durch und beende den iE wieder
  • starte die Batch via Taskplaner.
  • was passiert?

Gruß
cMaster
cMaster 09.04.2011, aktualisiert am 18.10.2012 um 18:46:25 Uhr
Goto Top
Hallo Anton,

ich hatte ein ähnliches Problem letztens auch erst, dass meine bat-Dateien (es sollte die ntbackup.exe aufrufen werden) vom Task Planer nicht richtig ausgeführt wurden, aber beim Aufruf per Doppelklick problemlos funktionierten. Ich weiß bis heute noch nicht, woran das liegt, aber ich konnte mein Problem lösen, indem ich mir die gesamte Batch als .vbs-Script umprogrammiert habe.

Hier mein Thema.

Gruß Stefan
AntonMuc
AntonMuc 09.04.2011 um 22:38:07 Uhr
Goto Top
Zitat von @60730:
aber watum eigentlich eine Batch dafür und nicht den IE mit den Parametern starten?
Weil die Datenbank keinen IE starten kann - der Zugriff auf IE ist nicht möglich, auch soll es ohne User-Login laufen
Daher eine .bat Datei schreiben und per Timer immer wieder ausführen lassen.
Die Möglichkeiten/Rechte der DB sind hier beschränkt, leider. Da kann ich keine Änderungen durchbringen.

* Unter welchem User werden diese Tasks aufgerufen?
unter meinem User - lokaler Admin - das passwort hinterlege ich auch beim Task - werde zur Auth auch aufgefordert

* melde dich mit dem User am Server an
bin ich

* starte den ie
hab ich

* wenn dann (wie vermutet) der "Was soll ich machen" Assi vom IE8 kommt - klicker dich durch und beende den iE wieder
hab ich - alles wie gewünscht - php wird aufgerufen und XML file gespeichert (dann wurde es von mir jetzt manuell gelöscht, damit ich das Ergebnis vom .bat File sehen kann)

* starte die Batch via Taskplaner.
hab ich

* was passiert?
nix - alles wie oben schon beschrieben - einfach nix
Die History sagt alles ok, aber es hat sich nix geöffnet (Fenster) oder geschweige denn ein XML File wurde erstellt.

- System
- Provider
[ Name] Microsoft-Windows-TaskScheduler
[ Guid] {DE7B24EA-73C8-4A09-985D-5BDADCFA9017}
EventID 201
Version 1
Level 4
Task 201
Opcode 2
Keywords 0x8000000000000000

- TimeCreated
[ SystemTime] 2011-04-09T20:29:00.058607500Z
EventRecordID 100831

- Correlation
[ ActivityID] {41F89DA8-5645-4C37-9681-2F7693E4C7A5}

- Execution
[ ProcessID] 4140
[ ThreadID] 5148

Channel Microsoft-Windows-TaskScheduler/Operational
Computer AVM02.film.net

- Security
[ UserID] S-1-5-21-3477404854-3013824773-614928053-1000

- EventData
TaskName \VdA
TaskInstanceId {41F89DA8-5645-4C37-9681-2F7693E4C7A5}
ActionName C:\Windows\SYSTEM32\cmd.exe
ResultCode 0