【发布时间】:2013-08-17 21:52:48
【问题描述】:
我有一个计划任务设置为在一夜之间在机器上运行。此任务将遍历一个文件夹,打印其中找到的所有文件。我可以在登录时毫无问题地运行该过程,但是通过计划任务运行时它不会打印。
更多信息:
计划任务执行一个 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 应用程序)以外的应用程序时使用此功能时,开始打印文档然后关闭。但是,当从计划任务运行时,应用程序不会自行关闭。
目前,我将不胜感激任何反馈、建议或指示,因为我已经碰壁了,不知道我还能检查什么。我也会就完成文件打印的替代方法提出建议。 (注意:我无法预测文件夹中的文件类型)
注意:在运行 Office 2007 和 Adobe Reader 10.1.7 的两台计算机(Windows server 2008 和 Windows 7)上存在这些症状
【问题讨论】:
-
调度任务是在什么账号下运行的?曾经因为启动帐户从未在计算机上运行 Acrobat 而将 Acrobat 作为计划任务出现问题,所以第一个启动配置对话框阻止了一切。
标签: powershell windows-7 windows-server-2008 scheduled-tasks