Jump to content

Powershell Script zum Konvertieren von Word-Dokumenten in PDF-Dateien via Aufgabenplanung starten


Direkt zur Lösung Gelöst von mwiederkehr,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

Arbeitsumgebung:

Windows 10 Professional V20H2 x64

DELL Optiplex 3070 (i5/8GB/SSD)

Kleine Active Directory Umgebung, Benutzer hat lokale Adminrechte und auf alle beteiligten Pfade Schreibrechte.

 

Ich möchte Worddokumente (*.docx) in PDF-Dateien konvertieren.

Hierzu habe ich ein Script geschrieben, das tut was es soll, solange man es interaktiv startet.

 

 

$path = 'C:\ESD\*'

$wd = New-Object -ComObject Word.Application
Get-ChildItem -Path $path -Include *.docx |
    ForEach-Object {
        $doc = $wd.Documents.Open($_.Fullname)
        $pdf = $_.FullName -replace $_.Extension, '.pdf'
        $doc.ExportAsFixedFormat($pdf,17,$false,1,3,1,1,0,$false, $false,0,$false, $true)
        $doc.Close()
    }
$wd.Quit()

 

Die Dokumente liegen in diesem Beispiel in C:\ESD, das Script in C:\ESD\Dokumentation. Die PDF-Dateien sollen in C:\ESD abgelegt werden.

Funktioniert über diverse Aufrufe, z.B. über die Powershell mit einem Aufruf .\pdf_converter.ps1 oder auch mit Rechtsklick und "Mit Powershell ausführen".

 

Über die Aufgabenplanung bekomme ich es nicht zum Laufen. Der Task wird gestartet und erfolgreich ausgeführt, Ergebnis gibt es aber keines. Soll heißen, die Dateien werden nicht konvertiert.

Parameter in der Aufgabenplanung:

- Ausführung erfolgt über einen berechtigten Benutzer aus dem AD

- Unabhängig von der Benutzeranmeldung ausführen

- Mit höchsten Privilegien ausführen

- Konfigurieren für: Windows 10

 

Trigger:

Täglich um 10:01 Uhr ausführen

 

Aktionen:

- Programm starten: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

- Argumente hinzufügen: -ExecutionPolicy Bypass -File c:\esd\Dokumentation\pdf_converter.ps1, Pfad alternativ in Anführungszeichen - ändert nichts.

- Starten in: C:\ESD\Doumentation, auch schon in Anführungszeichen probiert, auch schon ohne probiert. Ändert nichts.

 

Bei manuellem Ausführen über die Aufgabenplanung wird eine erfolgreiche Ausführung protokolliert:

 

Die Aufgabenplanung hat die Instanz "{40350e99-4130-4c9a-9324-20bcf7807b18}" der Aufgabe "\PDFConverter" für den Benutzer "domain\benutzer" erfolgreich fertig gestellt.

 

Ich habe andere Powershell-Skripte, die über die Aufgabenplanung ohne Probleme laufen mit den gleichen Parametern und Verzeichnissen. Diese Scripte rufen aber keine Programme auf, sondern kopieren im Vorfeld die Dateien in das Verzeichnis "C:\ESD".

Beispiel für das Script:

 

$srcPath = 'C:\ESD\Vorlagen\'
$destPath = 'C:\ESD\'
# target files where LastWriteTime >= 960 minutes "ago"
$age = (Get-Date).AddMinutes(-960)
#Write-Output "$age"
$newFiles = Get-ChildItem $srcPath | Where-Object { $_.LastWriteTime -ge $age }
#Write-Output "$newFiles"
foreach ($newFile in $newFiles) {
    #Write-Output "Copying $newFile to $destPath"
    Copy-Item $newFile.FullName -Destination "$($destPath)$($newFile)"
}

 

Vielleicht klingelt es ja bei einem Leser an der einen oder anderen Stelle. Ich kann nur vermuten, dass der Aufruf der Word Anwendung auf diesem Weg nicht funktioniert.

 

Danke für Eure Aufmerksamkeit vorab!

mulu

 

 

 

Link zu diesem Kommentar
vor 6 Minuten schrieb BOfH_666:

Das wird häufiger gefragt. Die Office-Programme wie Word oder Excel setzen eine interaktive Session voraus. Das wirst Du so nicht zuverlässig automatisiert bekommen.

 

Ich danke Dir vielmals. Keine Lösung, aber ich muss aufhören, den nichts existenten Fehler zu suchen, was nervenaufreibend ist.

vor 10 Minuten schrieb tesso:

Meine Vermutung geht eher dahin das Berechtigungen fehlen. Unabhängig vom Benutzer braucht Zugriff für den Computer.

Vielen Dank für den Ansatz!

Link zu diesem Kommentar
vor 2 Minuten schrieb mulu:

Ich danke Dir vielmals. Keine Lösung, aber ich muss aufhören, den nichts existenten Fehler zu suchen, was nervenaufreibend ist.

Eventuell gibt es andere Tools, bei denen keine Office-Komponenten involviert sind, die sowas können - ich kenn aber leider keine.  Eventuell lohnt eine entsprechende Suche auf StackOverflow.

Link zu diesem Kommentar
vor 25 Minuten schrieb BOfH_666:

Eventuell gibt es andere Tools, bei denen keine Office-Komponenten involviert sind, die sowas können - ich kenn aber leider keine.  Eventuell lohnt eine entsprechende Suche auf StackOverflow.

Dort gibt es einen Workaround, der bei vielen funktioniert, den "Ogawa Hack". Nicht ganz aktuell das Ganze, zugegeben.

 

Ogawa Hack on stackoverflow

 

Ulkigerweise existiert dieser Ordner bei mir bereits, Rechte stimmen - ändert nichts.

 

Link zu diesem Kommentar
vor 2 Minuten schrieb BOfH_666:

 

Das ist dann ja vielleicht das Problem mit diesem Workaround - die Welt hat sich ja seit dem ein ganzes Stück weitergedreht. Dein OS ist aktueller und Dein Office ist aktueller - manche Technik ändert sich eben doch mit der Zeit. ;-) 

Ja, mag sein. Ich teste das mal noch auf einem anderen System und melde zurück.

Du hast mich auf jeden Fall in der Sache massiv weitergebracht, dafür noch einmal vielen Dank!

vor 8 Minuten schrieb mulu:

Ich teste das mal noch auf einem anderen System und melde zurück.

Funktioniert auch auf einem anderen System nicht.

Link zu diesem Kommentar
  • Beste Lösung

Ich würde das nicht über Office machen. Spezielle Tools dafür sind weniger fehleranfällig und wesentlich schneller.

 

Die Tools von GemBox sind super. Diese verwende ich für die serverseitige Erstellung / Konvertierung von Word- und Excel-Dokumenten. Es ist eine .NET-DLL, die lässt sich auch aus der PowerShell ansteuern. Die Lizenz ist pro Entwickler, ein damit entwickeltes Tool darf also weiterverteilt werden.

 

Günstiger ist der reaConverter, dafür lizenziert pro Rechner. Ich habe keine Erfahrung damit in Bezug auf Office-Formate, aber ein Kunde setzt den im grossen Stil für Bild- und Vektorkonvertierungen ein und ist sehr zufrieden damit. Er kann Ordner auf neue Dateien überwachen, so dass Du evtl. ganz ohne PowerShell auskommst.

Link zu diesem Kommentar
vor 5 Minuten schrieb mwiederkehr:

Ich würde das nicht über Office machen. Spezielle Tools dafür sind weniger fehleranfällig und wesentlich schneller.

 

Die Tools von GemBox sind super. Diese verwende ich für die serverseitige Erstellung / Konvertierung von Word- und Excel-Dokumenten. Es ist eine .NET-DLL, die lässt sich auch aus der PowerShell ansteuern. Die Lizenz ist pro Entwickler, ein damit entwickeltes Tool darf also weiterverteilt werden.

 

Günstiger ist der reaConverter, dafür lizenziert pro Rechner. Ich habe keine Erfahrung damit in Bezug auf Office-Formate, aber ein Kunde setzt den im grossen Stil für Bild- und Vektorkonvertierungen ein und ist sehr zufrieden damit. Er kann Ordner auf neue Dateien überwachen, so dass Du evtl. ganz ohne PowerShell auskommst.

 

Schau ich mir an, vielen Dank!

Link zu diesem Kommentar
Am 24.3.2021 um 11:49 schrieb mwiederkehr:

Ich würde das nicht über Office machen. Spezielle Tools dafür sind weniger fehleranfällig und wesentlich schneller.

 

Die Tools von GemBox sind super. Diese verwende ich für die serverseitige Erstellung / Konvertierung von Word- und Excel-Dokumenten. Es ist eine .NET-DLL, die lässt sich auch aus der PowerShell ansteuern. Die Lizenz ist pro Entwickler, ein damit entwickeltes Tool darf also weiterverteilt werden.

 

Günstiger ist der reaConverter, dafür lizenziert pro Rechner. Ich habe keine Erfahrung damit in Bezug auf Office-Formate, aber ein Kunde setzt den im grossen Stil für Bild- und Vektorkonvertierungen ein und ist sehr zufrieden damit. Er kann Ordner auf neue Dateien überwachen, so dass Du evtl. ganz ohne PowerShell auskommst.


Der reaConverter ist es. Gekauft, tut was mein Kunde braucht. Nochmal vielen Dank für den Tipp! 😀

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...