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


4

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

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

两次,手动和从计划任务运行它作为管理员...并且任务很好地创建,如果我修改脚本并且不打开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()


我没有看到任何截图。
dangph

我不清楚的事情:一次可以运行多个脚本实例吗?如果是这种情况,那么您将在Word中执行多个并发操作,但Word不是为此而设计的。它一次只能做一件事。 Word是单用户客户端应用程序。它不是设计用作可以处理多个同时请求的服务器应用程序。我记得有一篇来自MS的知识库文章。
dangph

什么帐户运行任务?可以尝试将可见性设置为false,以便启动该过程但尝试显示窗口。
Shawn Melton

添加管理员 以批处理作业登录 每GPO。这可能有所帮助。
Berndinox

之前已解释过在非桌面环境中使用Office COM对象的限制: superuser.com/questions/730474/...
MFT

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.