我有一点(至少对我而言)奇怪的问题。我创建了一个(Java)应用程序(当满足某些条件时)运行PowerShell脚本,该脚本使用MS-Word打印某些文档。我通过一个简单的批处理文件(java调用)来运行这个应用程序。
当我通过我的批处理运行应用程序时,它就像一个魅力,但,当我(使用NSSM或AlwaysUp)将其转换为Windows服务时,触发打印过程失败。我在任务管理器中看到MS-Word进程已启动,它占用了大量CPU,但它什么也没做(无论我等多久)。
简化代码:
$objOffice = New-Object -comobject Excel.Application
$objDoc = $objOffice.Workbooks.Open("C:\printTest\printFile.xlsx")
$objDoc.printout()
$objDoc.Close($false)
$objOffice.quit()
我也在其他计算机上测试了这个......结果相同。
同样有趣: 编辑:这部分写的是我的错,并修复了它。
此时我甚至不确定它与powershell命令有什么关系,但我没有想法。
答案 0 :(得分:0)
Start-Process -FilePath 'C:\printTest\printFile.xlsx' -Verb print
另外,请查看this page,其中包含
您可能会注意到“允许服务与桌面交互”选项,我们之前提到过 - 默认情况下,服务不是 除非选中此框,否则允许访问您的桌面 复选框实际上仅用于遗留支持。
但只是检查 那个盒子不会立即让他们访问 - 你也需要 确保设置了注册表中的NoInteractiveServices值 为0,因为当它设置为1时,忽略该复选框 服务根本无法与桌面交互。注意:在Windows 8中, 该值设置为1,禁止交互式服务。