O problema provavelmente é específico do MS Word, que não foi projetado ou suportado para ser executado em uma sessão não interativa. A melhor solução é encontrar outra maneira de fazer sua conversão em PDF.
Veja
Eu tenho um script powershell que converte arquivos .doc em .pdf. Quando eu o executo manualmente, ele funciona perfeitamente no meu servidor windows 2012.
Quando eu o executo como uma tarefa agendada, abre uma instância do Word, mas não posso fechá-la, e a tarefa não termina corretamente. A pior parte é que esse processo utiliza 10% do procesor e quando a tarefa é executada novamente, outra é aberta em cima dela, e isso continua acontecendo usando 100% da CPU.
Ambas as vezes, manualmente e da tarefa agendada, são executadas como administrador ... e a tarefa é bem criada, se eu modificar o script e não abrir um Word e apenas, por exemplo, criar um arquivo .txt, funciona bem. então os problemas estão lá. "palavra de abertura do agendador de tarefas"
Aqui estão os scripts e também as capturas de tela. Qualquer ajuda será apreciada!
$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()
O problema provavelmente é específico do MS Word, que não foi projetado ou suportado para ser executado em uma sessão não interativa. A melhor solução é encontrar outra maneira de fazer sua conversão em PDF.
Veja