Neopolis 19 Geschrieben 18. Dezember 2020 Autor Melden Teilen Geschrieben 18. Dezember 2020 Danke für die Zeile. Ich habe die angepasst. Aber das sicher komplett verkehrt powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "& { Get-ChildItem -Path \"\\\\<Pfad>\\C:\temp\Eingang\" -Filter *.pdf | ForEach-Object { Start-Process $_.FullName -Verb PrintTo \"\\\\localhost\\Microsoft Print to PDF\" } }" Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 18. Dezember 2020 Melden Teilen Geschrieben 18. Dezember 2020 Bevor du das so machst, speichere das Script in eine .ps1 Datei und teste: https://www.mcseboard.de/topic/219140-pdfs-drucken-auf-einem-definierten-drucker/?do=findComment&comment=1411400 Ebenfalls kann es nicht schaden, sich beim Thema Scripting (minimal) mit den Grundlagen auseinander zu setzen. :) Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 18. Dezember 2020 Autor Melden Teilen Geschrieben 18. Dezember 2020 Danke, dass Du dir die Zeit genommen hast. Ich habe noch Probleme mit dem ausdrucken. Klar ist eine Beschäftigung mit Scripten grundsätzlich gut. Ich nutze das so selten aber Grundlagen schaden sicher nicht. Aber im Moment wäre ich für das Script sehr dankbar. Für die Grundlagen habe ich eben bei Amazon ein Buch bestellt. https://www.amazon.de/Windows-Scripting-lernen-PowerShell-net-com/dp/3827332052/ref=sr_1_1?__mk_de_DE=ÅMÅŽÕÑ&dchild=1&keywords=script+powershell&qid=1608298542&refinements=p_n_feature_three_browse-bin%3A15425222031&rnid=4192708031&s=books&sr=1-1 Könnt ihr das empfehlen? Gruß Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Dezember 2020 Melden Teilen Geschrieben 18. Dezember 2020 vor 3 Minuten schrieb Neopolis: Könnt ihr das empfehlen? Hmmm ... gab's nix Aktuelleres? Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 18. Dezember 2020 Autor Melden Teilen Geschrieben 18. Dezember 2020 Vielleicht das? https://www.amazon.de/PowerShell-Windows-Automation-für-Einsteiger-Profis/dp/3960090099/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&dchild=1&keywords=script+powershell&qid=1608299231&refinements=p_n_feature_three_browse-bin%3A15425222031&rnid=4192708031&s=books&sr=1-4 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Dezember 2020 Melden Teilen Geschrieben 18. Dezember 2020 vor 3 Minuten schrieb Neopolis: Vielleicht das? ... fände ich besser ... Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 18. Dezember 2020 Autor Melden Teilen Geschrieben 18. Dezember 2020 Okay ich bestelle auch gleich mit. Dennoch würde ich euch bitten mir mit dem jetzigen Scriptdebakel zu helfen und mir unter die Arme zu greifen . Und danke für die Einschätzung mit dem Buch. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 18. Dezember 2020 Melden Teilen Geschrieben 18. Dezember 2020 (bearbeitet) vor 6 Minuten schrieb Neopolis: Dennoch würde ich euch bitten mir mit dem jetzigen Scriptdebakel zu helfen und mir unter die Arme zu greifen . Aber Jan hat Dir doch schon den kompletten, fertigen Code gepostet. Du brauchst ihn doch nur mit den für Dich gültigen Pfaden zu ergänzen und auszuführen. Edit: .... grad erst gesehen ... mit dem Microsoft PDF-Printer wird das eher nicht klappen ... der erwartet ja für jeden Printjob eine Interaktion um die Ausgabe-Datei zu erfahren. nimm einen richtigen Hardware-Drucker!! bearbeitet 18. Dezember 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 18. Dezember 2020 Melden Teilen Geschrieben 18. Dezember 2020 (bearbeitet) Ein weiterer Ansatz, den ich in meiner ersten Antwort angedacht hatte, war "die Batch" in PowerShell zu übersetzen: $AdobePath = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" $PDFPath = "<Pfad zu den PDFs>" $PrinterName = "Microsoft Print to PDF" $PrinterDriver = "Microsoft Print to PDF" $PrinterPort = "PORTPROMPT:" $PDFs = Get-ChildItem -Path $PDFPath -Filter *.pdf foreach($PDF in $PDFs){ Start-Process -FilePath $AdobePath ` -ArgumentList $("/t `"{0}`" `"{1}`" `"{2}`" `"{3}`"" -f $PDF.FullName, $PrinterName, $PrinterDriver, $PrinterPort) } Da sollte halt nur _nicht_ der MS PDF Drucker genutzt werden. Ich habe leider im HomeOffice keinen anderen Drucker. ;) Ebenfalls muss man sich scheinbar noch Gedanken über das/die geöffnete/n Adobe Fenster machen. Notfalls lassen die sich aber nach dem Druckjob / am Ende des Scripts gezielt "abschießen". bearbeitet 18. Dezember 2020 von testperson Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 20. Dezember 2020 Autor Melden Teilen Geschrieben 20. Dezember 2020 Ich schaue mir das Montag sehr gerne an. vielen Dank an euch fleißige Helfer. meine Stärken liegen eindeutig nicht im Scripten. Das sind böhmische Dörfer. Corona bedingt bin ich im Home Office und kann leider nicht so real testen wie ich es gern würde. zur Umgebung kann ich soviel sagen. das Script läuft dann auf einer Windows Server 2019 VM und soll alle paar Minuten in ein bestimmtes Verzeichnis schauen ob dort PDFs drin liegen. Diese kommen automatisch in diesem Verzeichnis an und werden aus einem ERP System in einer Freigabe abgelegt. Diese Freigabe ist das Verzeichnis auf der VM zum Beispiel D:\Eingang Das Script soll beim Systemstart starten und dann kaufen und selbstständig alle paar Minuten schauen ob da was drin ist. Wenn was drin ist dann ausdrucken und und die ausgedruckte PDF Datei verschieben in D:\Verarbeitet. Der Drucker der das dann ausdrucken soll befindet sich einige hundert Kilometer entfernt von mir und das macht es dann auch etwas schwierig sich daneben zu hocken und zu testen. Deshalb würde ich gern vorher mit eurer Hilfe abchecken ob das Script so läuft und das dann testen. mit dem Microsoft Drucker hab ich verstanden da muss ich mir was einfallen lassen, dass ich da was anderes nehme. schönes Wochenende und besinnliche Feiertage bis Heiligabend Gruß Thomas Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 20. Dezember 2020 Melden Teilen Geschrieben 20. Dezember 2020 vor 6 Stunden schrieb Neopolis: Corona bedingt bin ich im Home Office und kann leider nicht so real testen wie ich es gern würde. Du kannst auf 10 Pro 64 Bit Hyper-V installieren, eine W2019 ISO kriegst Du bei MSFT für 180 Tage kostenlos installiert. Adobe Reader drauf, ein paar PDF-Dateien kopieren, Namen anpassen und schon kann man testen. Sofern an deinem Computer ein Drucker angeschlossen ist, kann man den sicherlich auch an die W2019 VM durchreichen. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 20. Dezember 2020 Melden Teilen Geschrieben 20. Dezember 2020 vor 12 Stunden schrieb Neopolis: meine Stärken liegen eindeutig nicht im Scripten. Das sind böhmische Dörfer. ... na dann wird's aber Zeit ... vor 12 Stunden schrieb Neopolis: Corona bedingt bin ich im Home Office und kann leider nicht so real testen wie ich es gern würde. ... das geht doch aber den meisten von uns zur Zeit genauso ... ich arbeite mit Ausnahme von 3 oder 4 Tagen zwischendurch auch seit 10. März im Home Office und ich habe auch schon seit 15 Jahren keinen Drucker mehr zu Hause. Eine Idee wäre noch, einen auf der Test-VM eingerichteten Netzwerkdrucker "anzuhalten" und dann darauf zu drucken. Dann würdest Du zumindest sehen, ob dort die Druckaufträge ankommen. Dann kann man irgendeinen verfügbaren Drucker benutzen, ohne Zugriff drauf haben zu müssen und vielleicht Kollegen ständig fragen zu müssen, ob da was angekommen ist oder so. ... und dann kannst Du, bevor Du den Druck wieder fortsetzt, die aufgelaufenen Druckaufträge einfach löschen. Das spart auch noch Papier. Unabhängig davon, hat man solche Anforderungen schon häufiger im Netz gesehen/gelesen. Schau doch mal bei PowershellGallery oder StackOverflow oder im Technet in der ScriptGallery oder in den Foren vorbei. Dort findet man mit an Sicherheit grenzender Wahrscheinlich etwas, was man leicht an eigene Anforderungen anpassen kann. Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 21. Dezember 2020 Autor Melden Teilen Geschrieben 21. Dezember 2020 So Jungs, Wochenende ist vorbei und ich bin wieder dran. Ich teste jetzt eure Tipps. Den Netzwerkdrucker habe ich an den Server angebunden und den Drucker pausiert. Guter Tipp hab ich nicht dran gedacht, dass es geht. Ich melde mich wenn es klappt oder ich etwas zu berichten habe. Ganz lieben Dank für eure Hilfe. Gruß Thomas Zitieren Link zu diesem Kommentar
Neopolis 19 Geschrieben 11. Februar 2021 Autor Melden Teilen Geschrieben 11. Februar 2021 Ich möchte mich nochmal bei euch bedanken für die vielen Anregungen. Ich habe nun ein Script mit Hilfe einiger Kollegen hinbekommen und dank der Bücher auch schon angefangen zu verstehen was da passiert. Das Ergebnis ist dieses: #Skript läuft alle 2 Minuten #Wird mit dem Task Schedule gestartet unter dem System Benutzer # Endlosschleife, damit das Skript nur einmal gestartet wird $n = 0 while ($n -eq 0) { #Das Verzeichnis wo die Dateien liegen wird festgelegt Push-Location "D:\Eingang" $PDFsToPrint = (Get-ChildItem *.pdf -File) Pop-Location $Acrobat = 'C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe' #Prüft ob die Variable $PDFsToPrint leer ist if ($PDFsToPrint){ ForEach($Pdf in $PDFsToPrint) { $ArgList=' /S /T "{0}" "{1}" "{2}" {3}' -f ` $Pdf, #Mit diesem Befehl findet man die benötigten Daten des Druckers # | Select-Object Name,Drivername,PortName # https://stackoverflow.com/questions/51246286/pdf-printing-script '\\printserver\Drucker - Utax P-4532DN KX', 'P-4532DN KX', 'Drucker.domain.lan' Start-Process $Acrobat -ArgumentList $ArgList #Der Sleep ist da um sicher zu gehen, dass der Druckauftrag nicht abgebrochen wird weil die Datei nicht mehr da ist Start-Sleep -Seconds 10 #optional delay Move-Item -Path $Pdf -Destination D:\Verarbeitet } Stop-Process -Name AcroRd32 Start-Sleep -Seconds 120 } else{ Start-Sleep -Seconds 120 } } Danke für die Hilfe 1 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 11. Februar 2021 Melden Teilen Geschrieben 11. Februar 2021 Und wenn Du jetzt in Zukunft noch Deinen Code als Code formatierst, bekommst Du ne "1" mit Sternchen. 1 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.