计划任务的问题 – 部分脚本不执行

当脚本从计划任务运行时,部分PowerShell脚本没有执行,遇到问题。 手动执行时,它运行得很好。

例如,我在脚本中有以下内容:

add-content c:\some_folder\output.txt "howdy" c:\windows\system32\notepad.exe 

当我手动运行脚本时,两个命令都会执行。 当被模拟的任务运行时,第一个命令执行,但第二个命令不执行。 这是一个过度简化的例子,但是我有更复杂的脚本,我得到了类似的行为…脚本执行手动运行时应该执行的操作,但是当从计划任务运行时,脚本不运行。

计划任务设置为以本地pipe理员身份运行,并select“以最高权限运行”选项。

有任何想法吗?

您给出的示例的问题是notepad.exe需要交互式会话才能显示UI。 运行计划任务时,不存在交互式会话来托pipeUI。

  1. 你在一个域中工作吗?

  2. 尝试修改\ system32 \ cmd.exe的安全权限并添加完全控制的内置帐户BATCH。

  3. 这个脚本是否使用任何networking资源? 如果您通过networking呼叫东西,本地pipe理员将不会执行业务。

  4. 计划任务运行时,什么是退出代码? 0x0是一个明显的成功。 0x1和0x2是常见的。 看看c:\ windows \ Schedlgu.txt,它会给你更多的信息。

  5. findCMD.EXE,用鼠标右键单击,然后select“运行方式”即可。 在此命令提示符下导航到脚本位置,然后从那里运行脚本。 确保你已经从顶部剥离了@ECHO(如果你已经使用了),所以你可以看到一切。

这应该让你看到失败的地方。

编辑:另外 – 在脚本的每个阶段添加回声线可以帮助。 例如,我经常在开始时遇到问题,然后在每个阶段或在任何重大操作之后进行类似的进一步处理,从而在开始时经常放置“Echo Starting the script >> checking.txt”。 然后你可以看到最后一次执行的地方,如果你依靠variables把它们放在输出中也是有帮助的,所以在那里添加一个“var目前是%var%”。

你能粘贴完整的脚本?