预定任务& PowerShell脚本未被执行

时间:2015-10-16 20:15:51

标签: windows powershell scheduled-tasks

我知道这已被问了1000次,我想我已经查看了所有这些内容。

我已安排在其他服务器上运行PowerShell脚本的任务,但不在此服务器上。哪个让我摸不着头脑,为什么我不能让它在这台服务器上工作。

我在Windows 2008 R2服务器上有一个powershell脚本。我可以手动运行它并且它完全正常工作,但是当我尝试从计划任务运行它时,历史记录表明它已运行,但PowerShell脚本不会执行。

启用PSRemoting

服务器ExecutionPolicy是“RemoteSigned”

我在历史记录

中有两个条目
  1. 行动已完成 任务计划程序成功完成任务“\ Processing”,实例“{dbbd4924-42d6-4024-a8ed-77494c7f84cf}”,操作“C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ PowerShell.EXE”,返回码为0. / p>

  2. 任务完成 任务计划程序成功完成了用户“domain \ user”的“{处理”任务的“{dbbd4924-42d6-4024-a8ed-77494c7f84cf}”实例。

  3. 计划任务如下所示:

    1. 我登录时设置在我的帐户下运行。 (因为我可以像我一样手动运行脚本)
    2. 选中以最高权限运行。
    3. 触发器每10分钟运行一次
    4. 启动程序操作.... Powershell.exe
    5. 参数:-executionpolicy remotesigned -File D:\ abc \ def \ powershell \ Processing.ps1
    6. 条件&设置默认设置。

2 个答案:

答案 0 :(得分:0)

确保您没有被任务的权限问题阻止: http://blogs.technet.com/b/askperf/archive/2012/04/18/task-scheduler-error-a-specified-logon-session-does-not-exist.aspx

上述GPO会阻止保存凭据。其他用户权限分配设置可以防止以批/脚本/任务/等方式运行。

作为一种变通方法,您还可以将任务设置为使用powershell任务运行.bat文件。添加echo或pipe参数可能会为您提供一些问题的线索。

答案 1 :(得分:0)

我建议您在此脚本中添加一些诊断日志记录,以找出导致此问题的位置或将此脚本的输出重定向到文件。例如。用这种方式用参数改变你的字符串:

-executionpolicy remotesigned -File D:\abc\def\powershell\Processing.ps1 2>&1 d:\output.log

看起来脚本已执行,但出了点问题。这种行为有太多原因,如果没有代码,很难找到根本原因。