Winforms Powershell脚本在作为计划任务执行时与在ISE中执行时在终止错误时的行为不同

Winforms Powershell脚本在作为计划任务执行时与在ISE中执行时在终止错误时的行为不同,winforms,powershell,Winforms,Powershell,我有一个powershell脚本,可以从SSR中提取报告,并将这些报告打包/聚合为Excel工作簿中的工作表 最近,脚本开始抛出以下内容: TerminationErrorNew对象:使用0个参数调用.ctor时发生异常:创建窗口句柄时出错 尝试执行时: $rv = New-Object Microsoft.Reporting.WinForms.ReportViewer 在一个函数中 同样,这是最近发生的事情。我无法确定发生了什么变化 该脚本执行数百个调用来创建ReportViewer。这些都

我有一个powershell脚本,可以从SSR中提取报告,并将这些报告打包/聚合为Excel工作簿中的工作表

最近,脚本开始抛出以下内容:

TerminationErrorNew对象:使用0个参数调用.ctor时发生异常:创建窗口句柄时出错

尝试执行时:

$rv = New-Object Microsoft.Reporting.WinForms.ReportViewer
在一个函数中

同样,这是最近发生的事情。我无法确定发生了什么变化

该脚本执行数百个调用来创建ReportViewer。这些都取得了成功

当我从PowerShell ISE运行脚本时,我看到上面的异常抛出了一次。每次运行脚本时,创建ReportViewer和获取SSRS报告的数百个调用都会在同一位置发生。但是,创建新ReportViewer对象失败后的其余调用将成功。只有一份报告将无法提取$ErrorActionPreference设置为继续

当我通过启用“以最高权限运行”的任务计划程序在相同的管理员用户凭据下执行脚本时,行为会有所不同。在创建ReportViewer和获取SSRS报告的数百次调用中,异常发生在同一位置,但此后创建ReportViewer对象和提取报告的每次调用都失败。在初始失败后,所有连续尝试拉取报告的操作都会失败,而不是拉取一个报告失败

我尝试过增加脚本的内存等方法。我正在努力删除变量和垃圾收集。我不确定1为什么调用new object cmdlet在之前多次成功后在一致点失败,2不确定为什么在ISE环境中运行脚本与在计划任务中运行脚本时在相同凭据下的行为不同

PS>TerminationErrorNew对象:调用带有0个参数的.ctor时发生异常:创建窗口句柄时出错。 新对象:调用具有0个参数的.ctor时发生异常:创建窗口句柄时出错。 在C:\ReportDistribution\SSRSDistributeProd.ps1:36 char:9 +$rv=新对象Microsoft.Reporting.WinForms.ReportViewer; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidOperation::[New Object],MethodInvocationException +FullyQualifiedErrorId:ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
您是否尝试添加try{}catch{}错误处理来处理错误,以便脚本不会继续爆炸?如果在powershell控制台主机powershell.exe而不是ISE中以交互方式运行脚本,会发生什么情况?另外,请发布您在计划任务中使用的命令行。