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