Os scripts do Powershell funcionam manualmente, mas não como uma tarefa agendada

4

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()
por Andrew 03.01.2014 / 22:02

1 resposta

1

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

por 01.06.2014 / 12:00