Powershell 脚本可以手动运行,但不能作为计划任务运行

Powershell 脚本可以手动运行,但不能作为计划任务运行

我有一个将 .doc 转换为 .pdf 文件的 powershell 脚本。当我手动执行它时,它可以在我的 windows server 2012 上完美运行。

当我将其作为计划任务执行时,会打开 Word 的一个实例,但无法关闭它,并且任务无法正确结束。最糟糕的是,此过程占用了 10% 的处理器,当任务再次运行时,另一个任务会在其上打开,这种情况会持续发生,占用 100% 的 CPU。

两次,手动和从计划任务都以管理员身份运行...并且任务创建得很好,如果我修改脚本并且不打开 Word 而只是创建一个 .txt 文件,就可以正常工作。所以问题就在那里。“从任务计划程序打开 Word”

这是脚本,还有截图。任何帮助都将不胜感激!

$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

这个问题可能与 MS Word 有关,因为它不是为非交互式会话设计的,也不支持运行。最好的解决方案是找到其他方法进行 PDF 转换。

相关内容