4

У меня есть скрипт PowerShell, который преобразует .doc в .pdf файлы. Когда я выполняю его вручную, он отлично работает на моем Windows Server 2012.

Когда я выполняю его как запланированную задачу, открывает экземпляр Word, но не может закрыть его, и задача не завершается правильно. Хуже всего то, что этот процесс использует 10% процессора, и когда задача запускается снова, поверх нее открывается еще одна, и это продолжает происходить с использованием 100% процессора.

Оба раза, вручную и из запланированной задачи, она запускается от имени администратора ... и задача хорошо создана, если я изменяю сценарий и не открываю Word, а просто создаю, например, файл .txt, работает отлично. так что проблемы его там. "открытие слова из планировщика задач"

Вот сценарии, а также скриншоты. Любая помощь будет оценена!

$origen = 'C:\Test'
$destino = 'C:\Test'

$word_app = New-Object -ComObject Word.Application

echo "Buscando cambios en las carpetas de origen..."

Get-ChildItem -Path $origen -Filter *.doc? | ForEach-Object {

    if (-Not (Test-Path "$destino\$($_.BaseName).pdf")) {
        $document = $word_app.Documents.Open($_.FullName)
        $pdf_filename = "$destino\$($_.BaseName).pdf"   
        echo "$($_.FullName) convertido a $pdf_filename!"
        $document.SaveAs([ref] $pdf_filename, [ref] 17)
        $document.Close()
    } 
}


$word_app.Quit()

1 ответ1

1

Вероятно, проблема связана с MS Word, который не предназначен и не поддерживается для работы в неинтерактивном сеансе. Лучшее решение - найти какой-то другой способ конвертации PDF.

Увидеть

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .