【问题标题】:Windows 2012 fails to run powershell script [closed]Windows 2012 无法运行 powershell 脚本 [关闭]
【发布时间】:2016-04-29 12:38:20
【问题描述】:

试图让脚本在任务调度程序下运行。我可以毫无问题地从 powershell 窗口运行以下命令

powershell.exe -ExecutionPolicy Unrestricted -NonInteractive -NoProfile -File C:\DataProcessing\Scripts\MoveDailyOpra.ps1.

我在任务计划程序下创建了任务,并将其分配为每天运行一次。但是,我什至看不到任务正在运行的证据。 ps1 文件创建了一个日志文件,因此我可以看到发生了什么,但甚至没有创建日志文件。

任务说它已成功运行。

1) 我如何调试任务计划程序实际在做什么 2) 我必须在任务中添加哪些其他属性。

【问题讨论】:

  • 除非您提供有关该问题的更多详细信息,否则该问题将作为题外话关闭。
  • 这应该如何调试?您发布的所有内容都是您所说的有效。您如何在失败的调度程序中调用脚本?你怎么知道它失败了?您是否看到错误消息?如果是这样,请发布它。重现问题的最小脚本的内容是什么?
  • 我已经更新了条目。

标签: powershell windows2012 taskscheduler


【解决方案1】:

将以下内容粘贴到Task Scheduler 中新操作的“程序/脚本”字段中。应该会出现一个关于参数的弹出窗口,单击“是”。

PowerShell.exe "& 'C:\DataProcessing\Scripts\MoveDailyOpra.ps1'" -ExecutionPolicy Unrestricted -NonInteractive -NoProfile 

这是将命令字符串传递给 Powershell.exe,然后 Powershell.exe 会执行该字符串,然后使用 & 运算符调用您的脚本;称为话务员。所以调用链是Task scheduler >> PowerShell.exe >> 你的script.ps1。

& Call operator - 运行命令、脚本或脚本块。呼叫操作员,也称为 “调用运算符”允许您运行存储在 变量并由字符串表示。因为呼叫运营商不 解析命令,它不能解释命令参数。

如果仍然失败,请检查您的脚本路径是否正确,以及您运行任务的帐户是否具有访问脚本的正确权限。

【讨论】:

  • 优秀。那行得通!唯一的问题是我不明白为什么。为什么ps1作业一定要加引号?
  • @ColinLarcombe 我已经更新了我的答案来解释,如果这回答了你的问题,你可以接受答案。
猜你喜欢
  • 2020-12-05
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2013-01-02
  • 2018-03-21
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多