我正在尝试通过Powershell从Outlook帐户向Outlook帐户发送电子邮件,并使用任务计划程序运行该脚本。
My Tash Scheduler配置如下:
PowerShell -NoProfile -ExecutionPolicy Bypass -File "<script location\script name.ps1>" -Parameter 'Value'
我的PowerShell脚本如下:
$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem("olMailItem")
$Mail.To = "<My Email>"
$Mail.Subject = "Subject"
$Mail.Body = "Body"
$Mail.Send()
如果我通过双击它自己运行PS1脚本,电子邮件会成功发送。
如果我有调度程序,使用我的帐户,我可以看到电子邮件弹出到我的Outlook的草稿文件夹,草稿文件夹闪烁一些,电子邮件消失。
在搜索可能与之相关的唯一内容是Object Model Guard。但我不知道如何解决这个问题。
关于如何解决我的情况的任何想法?
编辑:
我认为这与设置“仅在用户登录时运行”与“运行用户是否已登录”设置有关。
如果我选择“仅在用户登录时运行”,但是当我选择“运行用户是否登录时”时,它会起作用,即使我提前给出了密码,也会出现我上面提到的情况。
答案 0 :(得分:0)
固定!
在完成所有搜索和尝试之后无法相信,我让它发挥作用。
让Task Scheduler调用包含PowerShell命令的.BAT文件解决了这个问题,在我的情况下:
PowerShell -NoProfile -ExecutionPolicy Bypass -File "<script location\script name.ps1>" -Parameter 'Value'
不知道为什么会这样。