duderu
Goto Top

Probleme bei der Funktionsweise einer im Hintergrund laufenden Batch

Hallo zusammen,

ich habe ein Problem mit einer Batch, welche im Hintergrund ausgeführt wird, diese Ausführung im Hintergrund scheint sich jedoch jedes Mal aufzuhängen.

So um was gehts eigentlich genau:

Ich habe zwei Standorte, welche über eine dünne Leitung miteinander verbunden sind (einer der Standorte -> Standort B ist relativ ländlich weswegen eine größere Leitung derzeit noch nicht realisiert werden kann). Die Kollegen von Standort B verbinden sich über ihren PC per VPN auf eine virtuelle Maschine am Standort A von der aus sie arbeiten. Wenn die Kollegen etwas über ihre virtuelle Maschine drucken, so wird der Druckauftrag von Standort A an Standort B zum lokalen Drucker gesendet. Da die Druckaufträge teilweise enorm aufblähen (PCL oder PS wurde beides getestet) gibt es immer Probleme bei der Übertragung der Druckaufträge.

Daher habe ich einen kleinen Workflow erstellt um das Problem zu umgehen. Die Mitarbeiter drucken per PDF-Creator jegliche Datei als PDF in ein persönliches Verzeichnis am Standort A. Die Dateien aus diesem Verzeichnis werden dann automatisch an Standort B übertragen (dadurch fällt das Aufblähen der Druckeraufträge über die Leitung weg). An Standort B - sprich auf dem lokalen Rechner des Kollegen wird die PDF in ein Verzeichnis abgelegt. Jegliche PDF die sich in dem Verzeichnis befindet wird automatisch ausgedruckt und danach in einem "bereits gedruckt"-Ordner verschoben. So haben die Kollegen eine viel bessere Performance, da die Druckaufträge direkt an den lokalen Drucker gesendet werden. All das was ich in diesem Absatz geschrieben habe ist in einer Batch formuliert, welche auf dem lokalen Rechner am Standort B ausgeführt wird.

Die Clients arbeiten auf Windows 7 Enterprise - 64 Bit-Systemen an beiden Standorten.

Hier der Inhalt der Batch:

@echo off 
 
:foldersynch

REM Prüfe ob PDFs im Verzeichnis des PC Standort B sind
for %%p in (\\PcStandortB\Druckdateien\*.pdf) do ( 

REM Falls PDFs im Verzeichnis sind, kopiere diese in das persoenliche Verzeichnis von Kollegen am Standort B
move %%p   C:\users\%username%\Desktop\Druckdateien 

REM For-Schleife zum ueberpruefen ob PDFs zum Drucken im persoenlichen Verzeichnis liegen
	for %%i in (C:\users\%username%\Desktop\Druckdateien\*.pdf) do ( 

REM Drucke PDF 
	"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /p /h %%i  

REM Einen Moment warten, da der darauf folgende move-Befehl übersprungen wird wenn die Datei noch in Bearbeitung durch das Drucken ist
	ping 127.0.0.1 -n 35

REM Verschieben in bereits gedruckt Verzeichnis
	move %%i C:\users\%username%\Desktop\Druckdateien\bereits_gedruckt 
	) 
) 

ping 127.0.0.1 -n 5 

REM Endlosschleife, beginne wieder am Anfang
goto foldersynch

Das ganze funktioniert auch wunderbar wenn ich die Batch manuell starte. Ich lasse die Batch zusätzlich durch ein .vbs starten, damit der Anwender nicht sieht was auf dem PC so passiert:

set fs= createobject("wscript.shell")  
fs.run "C:\Users\%username%\Desktop\batch.bat",0  

Wenn ich die .vbs nun in die Aufgabenplanung einbinde oder in den Autostart-Ordner lege, dann funktioniert das Ganze nicht. Meist wird eine PDF gedruckt aber das wars dann, mehr tut sich nicht mehr. Neue PDFs werden nicht mehr beachtet und es passiert einfach gar nichts mehr. Ich habe es auch schon versucht indem ich die Batch in eine .exe umwandle aber hier das gleiche Fehlerbild.

Hat jemand eine Idee woran das liegen kann? Wie gesagt wenn ich die Batch per Hand starte läuft alles fehlerfrei dauerhaft durch.

Viele Grüße

duderu

Content-Key: 314052

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

Printed on: April 20, 2024 at 01:04 o'clock

Member: em-pie
em-pie Aug 31, 2016 at 14:45:32 (UTC)
Goto Top
Tach,

hat der User, unter dem der geplante Task ausgeführt werden soll, auch Zugriff auf die Benutzerverzeichnisse?

Am Rande:
In Zeile 9 schreibst du im "Kommentar", dass du kopieren willst, tatsächlich verschiebst du aber.


Gruß
em-pie
Member: runasservice
runasservice Aug 31, 2016 updated at 15:05:23 (UTC)
Goto Top
Hallo,

REM Prüfe ob PDFs im Verzeichnis des PC Standort B sind 
for %%p in (\\PcStandortB\Druckdateien\*.pdf) do (  

Der UNC-Pfad steht (bestimmt) bei der Anmeldung noch nicht zur Verfügung, das gleiche für die Aufgabenplanung. Verbinde den UNC-Pfad explizit in deiner Batch-Datei bevor Du die For-Schleife startest.

Beim Anlegen in der Aufgabenplanung benötigst Du einen Account der auch ein Netzwerk-Laufwerk verbinden darf.

Mit freundlichen Grüßen
Member: runasservice
runasservice Aug 31, 2016 at 15:03:39 (UTC)
Goto Top
Hallo,

hatte das gleiche Problem, aber eine andere Lösung. Ich sende die PDF-Dateien per Mail, an ein E-Mail-Konto und benutze das POP3-Print von Keyrocera (FS4200DN). Der Laserdrucker pollt, das Mail-Konto alle 3 Minuten und druckt dann automatisch. POP3-Print gibt es auch von anderen Drucker-Herstellern.

Funktioniert einwandfrei, nur mal so als Anregung....

Mit freundlichen Grüßen
Member: duderu
duderu Sep 02, 2016 at 06:14:07 (UTC)
Goto Top
Hi,

ja der User hat die entsprechenden Rechte.

Ja das stimmt in Zeile 9 habe ich mich verschrieben, das mit dem move soll so sein.

Viele Grüße

duderu
Member: duderu
duderu Sep 06, 2016 at 07:31:04 (UTC)
Goto Top
Hallo zusammen,

sorry für die etwas verzögerte Antwort.

Ich habe noch ein paar Tests durchgeführt, bei denen mir aufgefallen ist, dass sich die Batch immer direkt nach dem Druckbefehl aufhängt, also der Druck wird noch ausgeführt aber danach läuft die Batch nicht weiter.
Deswegen habe ich das Ganze jetzt aufgeteilt in zwei Batchfiles. Eine läuft als Schleife und synchronisiert die Ordner zwischen den Standorten und sobald eine PDF verschoben wurde, wird der Printjob in einer zweiten Batch gestartet. Falls die Batch sich mal nach dem Printjob aufhängt ist es nicht so schlimm, da sie bei jeder Synchronisation von PDF-Files neu gestartet wird.

Viele Grüße

Duderu