stevenow
Goto Top

Drucken von pdf über Batch per Taskplaner

Hallo zusammen,

ich möchte dass jeden Tag eine Datei automatisiert gedruckt wird.
Dazu habe ich folgendes batch geschrieben, welches auch super funktioniert solange ich es per Doppelklick starte.
Wenn das Batch per Taskplaner gestartet wird, dann steht der Task sehr lange auf "running".
Ich gehe davon aus, dass das Batch durchläuft, da man zusehenkann wie AcroRd32.exe im Taskmanager auftaucht und wieder verschwindet.
Jemand eine Idee?

"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /n /s /o /t "E:\PDF_Exporte\test.pdf" "Canon iR"
ping -n 20 127.0.0.1
::del "E:\PDF_Exporte\Essensbestellung\"*.pdf /s /q
taskkill /im AcroRd32.exe /F
EXIT /B

Ich weiß, das Thema drucken gibts hier im Forum schon, allerdings habe ich nix zu der Problematik Tasksheduler gefunden.

Danke schonmal.

Content-Key: 296036

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

Printed on: April 16, 2024 at 14:04 o'clock

Mitglied: 114757
114757 Feb 12, 2016 updated at 16:29:03 (UTC)
Goto Top
Moin.
Mögliche Ursachen:
  • Falscher Account für die Ausführung im Task benutzt
  • Dieser Account hat keine Zugriffsrechte auf das Laufwerk/Pfad/Datei
  • Wenn E:\ ein Netzlaufwerk ist und im Task ein anderer Account als der angemeldete benutzt wird ist das Netzlaufwerk nicht verfügbar weil Netzlaufwerke sessionabhängig sind, dann also entweder in der Batch das LW mappen oder das File per UNC-Pfad ansprechen.
  • Das gleiche gilt für Drucker, diese können ebenfalls userabhängig gemappt sein (Netzwerkdrucker), so dass sie unter dem im Taskplaner angegebenen Account nicht verfügbar sind.

Berechtigungen und deren obigen Abhängigkeiten sind die meisten Fehlerquellen wenn ein Task nicht das macht was er soll.

Gruß jodel32
Member: Pjordorf
Pjordorf Feb 12, 2016 at 16:36:08 (UTC)
Goto Top
Hallo,

Zitat von @SteveNow:
Wenn das Batch per Taskplaner gestartet wird, dann steht der Task sehr lange auf "running".
Was bedeutet "sehr lange"?

Ich gehe davon aus
Welches Konto wird denn für deine Batch genommen? Hat dieses Konto überhaupt den Drucker eingebunden und oder Rechte eben an die Programme oder Die PDFs zu kommen und findet dieser die auch in E:? Dein OS ist jetzt ein was?
Und nicht nur davon ausgehen das etwas irgendwie tut, bau in deiner Batchdatei ein paar LOG ausgaben ein, dann weist du wann was dort getan wird und du kannst so erkennen warum evtl. nichts gedruckt wird.

https://technet.microsoft.com/en-us/library/cc721931.aspx
http://superuser.com/questions/199148/run-task-manager-as-another-user- ...

Gruß,
Peter
Member: SteveNow
SteveNow Feb 15, 2016 at 08:34:12 (UTC)
Goto Top
Grüße

OS ist Windows Server2012 R2

Der User im Taskplaner ist der selbe mit dem ich das batch händisch ausführe.
Also Berechtigungen für E:\ (lokale HDD) und Drucker sind vorhanden.
Member: SteveNow
SteveNow Feb 15, 2016 at 08:35:28 (UTC)
Goto Top
Guten Morgen,

wie bau ich denn Logs ein in diesem Fall?
Member: Pjordorf
Pjordorf Feb 15, 2016 at 20:58:38 (UTC)
Goto Top
Hallo,

Zitat von @SteveNow:
wie bau ich denn Logs ein in diesem Fall?
Am einfachsten innerhalb deines Batch an den Stellen wo es dich interessiert eine Ausgabe in eine Textdatei ausgeben lassen. z.B.
echo Das ist Pruefpunkt 1 meiner Batchdatei>>\\Server\Freigabe\BatchProtokoll1.txt
oder
Echo Adobe Acrobat wird jetzt gestartet>>C:\Temp\BatchProtokoll.txt
"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /n /s /o /t "E:\PDF_Exporte\test.pdf" "Canon iR"  
Echo Adobe wurde gestartet (Pruefen) und nun warte 20 Sekunden>>C:\Temp\BatchProtokoll.txt
Echo Time /T>>C:\Temp\BatchProtokoll.txt
ping -n 20 127.0.0.1
Echo Time /T >>C:\Temp\BatchProtokoll.txt
Wäre eine der fast unendlichen Möglichkeiten sich etwas als Protokoll (Log) ausgeben zu lassen.

Gruß,
Peter
Member: SteveNow
SteveNow Feb 16, 2016 at 10:17:06 (UTC)
Goto Top
Ich konnte das Problem reproduzieren.
Warum bisher Adobe Reader geschlossen wurde weiß ich nicht.

Aktuell ist es so, wenn ich das Batch von Hand starte:

Adobe Reader startet & Druckt das PDF.
Adobe Reader schliesst das PDF, der Reader bleibt aber offen.

Damit stagniert das batchfile.
Wenn ich Adobe Reader dann von Hand schliesse läuft das batch weiter.

Ich konnte zu dem Problem leider nichts finden was abhilfe schafft.
Mitglied: 114757
114757 Feb 16, 2016 updated at 11:48:58 (UTC)
Goto Top
Ich würds mit Powershell machen, die Funktion hier habe ich schon mehrfach erfolgreich eingesetzt.
PDF via Powershell drucken - Reader nach druck schließen
Member: Pjordorf
Solution Pjordorf Feb 16, 2016, updated at Feb 22, 2016 at 12:05:15 (UTC)
Goto Top
Hallo,

Zitat von @SteveNow:
Adobe Reader schliesst das PDF, der Reader bleibt aber offen.
Weil
Print a PDF file silently:
AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

The last command will open a new Adobe Reader window, print the PDF file and then terminate its window unless that window happens to be the only Adobe Reader window left: at least one Adobe Reader window will be left open.
von hier http://www.robvanderwoude.com/commandlineswitches.php#Acrobat

Gruß,
Peter
Member: SteveNow
SteveNow Feb 22, 2016 at 12:05:00 (UTC)
Goto Top
Zitat von @Pjordorf:

Hallo,

Zitat von @SteveNow:
Adobe Reader schliesst das PDF, der Reader bleibt aber offen.
Weil
Print a PDF file silently:
> AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
> 
> The last command will open a new Adobe Reader window, print the PDF file and then terminate its window unless that window happens to be the only Adobe Reader window left: at least one Adobe Reader window will be left open.
von hier http://www.robvanderwoude.com/commandlineswitches.php#Acrobat

Gruß,
Peter

Hi,
genau das war das Problem.
Ich konnte es jetzt lösen indem ich einfach Foxit PDF benutze.
if exist "E:\PDF_Exporte\test.pdf" (  
START "Print Document" "C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe" /t "E:\PDF_Exporte\test.pdf" "Canon iR-ADV"  
ping -n 15 127.0.0.1
taskkill /im FoxitReader.exe /F
del "E:\PDF_Exporte\"*.pdf /s /q  
) else (
    Echo %DATE% %TIME% : PDF nicht gefunden !!>>E:\Batch_Engine\test_log.txt
)
Echo "------------------------------------------------------">>E:\Batch_Engine\test_log.txt  
EXIT /B