PowerShell脚本通过Task Scheduler调用Outlook执行失败的问题求助
大家好,我最近遇到了一个棘手的问题,想请各位帮忙分析下:
我用PowerShell写了个脚本,用来从Outlook邮箱里下载Excel工作表并存到指定文件夹,这个脚本通过任务计划程序调度执行,几年来一直运行得毫无问题。但最近我修改了Active Directory(AD)账户密码,并且同步更新了任务计划里的账户密码后,任务虽然显示执行完成,但根本没下载任何文件,还抛出了错误。
具体的错误信息如下:
You cannot call a method on a null-valued expression.
At C:\PS\Process_Mailbox.ps1:66 char:1
$Inbox = $Namespace.Folders.Item("$MailboxName").Folders.Item("Inbox" ...CategoryInfo : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : InvokeMethodOnNull
You cannot call a method on a null-valued expression.
At C:\PS\Process_Mailbox_RBL.ps1:67 char:1
$Archive = $Namespace.Folders.Item("$MailboxName").Folders.Item("$Mai ...CategoryInfo : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : InvokeMethodOnNull
特别奇怪的是,我手动双击运行这个脚本的时候完全正常,能顺利下载文件,但一放到任务计划程序里执行就出问题。我已经检查过用户权限、Outlook配置文件,还有任务计划的各项设置(比如运行权限、触发器、操作参数),可还是找不到问题的根源。
看起来问题应该出在任务计划运行脚本时,和Outlook的交互环节上——毕竟错误提示是$Namespace.Folders.Item(...)获取到了空值,没法调用后续的方法。有没有哪位朋友遇到过类似的情况?或者有什么排查思路和解决建议能分享给我?非常感谢大家的帮助!
备注:内容来源于stack exchange,提问作者Andy

