我有一个计划任务集,要在一夜之间在机器上运行。此任务将遍历一个文件夹,打印其中找到的所有文件。我可以在登录时毫无问题地运行该过程,但是在通过计划任务运行时它不会打印。
更多信息:
计划任务执行一个 powershell 脚本,该脚本执行多种功能,例如生成和通过电子邮件发送报告、跨网络文件夹复制文件以及最终打印文件夹的内容。如果执行帐户当前已登录,则所有这些任务都将正确执行。如果该帐户未登录并通过计划任务运行,则除 Office 和 PDF 文档的打印之外的所有内容都可以正常工作(文本文档打印正常)。
这是我用来打印文档的功能。
Function Print-File($file)
{
begin
{
function internal-printfile($thefile)
{
if ($thefile -is [string])
{
$filename = $thefile
}
else
{
if ($thefile.FullName -is [string] )
{
$filename = $thefile.FullName
}
}
$start = new-object System.Diagnostics.ProcessStartInfo $filename
$start.Verb = "print"
[System.Diagnostics.Process]::Start($start)
}
if ($file -ne $null)
{
$filespecified = $true;
internal-printfile $file
}
}
process
{
if (!$filespecified)
{
$test = write-Host process ; internal-printfile $_
}
}
}
从计划任务运行时,当我将输出转储到文本文件时,我可以看到进程启动(Winword 或 AcroRd32),但是我没有看到任何打印内容。我注意到的另一个区别是,当我在登录 Adobe 阅读器(Office 应用程序)以外的应用程序时使用此功能时,开始打印文档然后关闭。但是,当从计划任务运行时,应用程序不会自行关闭。
目前,我将不胜感激任何反馈、建议或指示,因为我已经碰壁了,因为我知道我还能检查什么。我也会就完成文件打印的替代方法提出建议。(注意:我无法预测文件夹中的文件类型)
注意:这些症状出现在两台机器上,即 Windows server 2008 和 Windows 7,它们都运行 Office 2007 和 Adobe Reader 10.1.7