【问题标题】:Powershell script not running on Task SchedulerPowershell脚本未在任务计划程序上运行
【发布时间】:2015-07-27 10:04:24
【问题描述】:

我有一个 PS 脚本,它可以打开 Excel(Com 对象),处理一堆信息,重新保存,然后通过电子邮件发送一些关键信息。该脚本运行良好,当我从运行控制台运行它时,它也运行良好。但是,当我在任务计划程序中将其安排为任务时,它无法正常工作。该任务似乎每次都“成功运行”,但我没有收到我应该收到的输出电子邮件。我在任务计划程序中使用相同的配置运行了许多其他 PS 脚本,没有问题。这可能与将 Excel 作为预定脚本的一部分打开有关吗?欢迎任何想法。

【问题讨论】:

  • PS脚本需要以管理员身份运行吗?
  • 另外,脚本是否试图访问网络驱动器上的某些内容?尝试在脚本中添加一些基本的日志记录。脚本是否在无权从或向脚本中使用的地址发送邮件的凭据下运行?
  • @AnthonyForloney - 是的,它以管理员身份运行。我使用与任何其他 PS 脚本相同的设置运行它。
  • @BaconBits 它正在尝试访问网络驱动器上的某些内容...但是当我从 Windows 中的运行控制台运行时,它可以毫无问题地访问它。仅在从任务计划程序运行时才出现问题是否有意义?
  • 后台任务没有获得网络驱动器,因为任务计划程序使用会话 0 隔离。 Here 是一篇描述它的知识库文章,here 是一个很好的博客来解释这个问题(等等)。您也许能够解决 UNC 路径的问题,但如果您使用像 \\remotesystem\C$\[...] 这样的管理共享,您仍然会遇到问题,IMX。配置实际共享和配置权限将允许您使用 UNC 路径。

标签: excel powershell task


【解决方案1】:

我使用@briantist 在PowerShell script won't execute as a Windows scheduled task 中的答案解决了这个问题,但我想准确地找出解决问题的开关。

它与-ExecutionPolicy-Noninteractive-NoLogo-NoProfile 或任何其他系统权限、运行脚本的用户帐户等无关。

只需在Task Scheduler > Actions > Arguments字段的脚本路径前添加-File即可。如果没有这个开关,PowerShell 将启动并且任务历史显示Action Completed,但脚本没有执行。

【讨论】:

  • 请避免跨多个问题粘贴答案。如果问题重复,请将它们标记为重复。
猜你喜欢
  • 2015-07-22
  • 2017-11-08
  • 2020-08-07
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2019-05-02
相关资源
最近更新 更多