【问题标题】:Running PowerShell in Task Scheduler在任务计划程序中运行 PowerShell
【发布时间】:2017-05-28 20:31:50
【问题描述】:

我正在使用 PowerShell 从电子邮件中下载数据。

我想通过 PowerShell 运行这个进程。当我像这样运行脚本时:

D:\script.ps1

powershell.exe 中它工作正常。

当我在任务计划程序中安排它时,没有任何反应。

我尝试将其设置为程序/脚本:

powershell
Powershell.exe
powershell.exe

添加参数:

-executionpolicy bypass -file D:\script.ps1
-file D:\script.ps1
-file "D:\script.ps1"

没有任何效果。我使用的是 Windows 2008 R2。

【问题讨论】:

  • powershell 会启动吗?我猜它要么是路径错误,要么是执行策略,但现在很难从你的问题中分辨出来。尝试(1)添加标志-noexit 应该可以帮助您查看错误消息(如果有)和(2)指定powershell的完整路径,例如C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

标签: windows powershell windows-server-2008-r2 taskscheduler


【解决方案1】:

排查计划任务很麻烦,因为您无法真正看到发生了什么。以下是您可能需要检查的一些事项:

  • 检查您的命令行是否在原则上工作,例如通过从 CMD 运行它(在你的情况下尝试运行powershell.exe -File "D:\script.ps1")。如果这给您带来任何错误,您需要先修复这些错误。

  • 如果您打算以特定用户身份运行任务,请以该用户身份启动 CMD 并运行相同的命令行以检查该用户是否拥有执行脚本所需的所有权限。

  • 检查您的任务是否实际终止或进程是否仍在运行(通过Process ExplorerGet-Process、任务管理器……)。

  • 检查上次运行结果以获取命令的退出代码。

  • 为您的计划任务启用历史记录(操作 → 启用所有任务历史记录)。这将至少为您提供一些关于任务正在做什么、它是否开始以及是否/哪些错误发生的信息。您需要管理权限才能启用任务历史记录。

  • 检查事件日志中与任务运行相关的错误/警告。

  • 将日志语句添加到您正在运行的脚本中以记录进度信息。我个人更喜欢记录到事件日志,因为这样可以避免文件系统权限问题。

    Write-EventLog -LogName Application -Source EventSystem -EventID 100 -EntryType Information -Message 'Your log message.'
    

    如果您在系统上拥有管理员权限,则可以注册自己的事件源并在上述日志语句中使用它,而不是滥用现有源,例如 EventSystem

    New-EventLog -Source MyEventSource -LogName Application
    

进一步的帮助将在很大程度上取决于您按照这些步骤获得的结果以及您的实际脚本代码。

【讨论】:

    【解决方案2】:

    我发现这个网站非常有用: http://www.microsoftpro.nl/2011/07/07/how-to-schedule-a-powershell-script-using-scheduled-tasks-in-windows-server-2008-r2/

    我还更改了安全选项属性,它有所帮助。

    我没有检查:不要存储密码,现在它在我没有登录网络的情况下运行。

    和平

    【讨论】:

      【解决方案3】:

      我遇到的几个主要观察结果:

      1. 不要只给出powershell.exe,而是尝试给出完整的PS路径C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

      2. 权限是另一个问题。运行任务的用户可能没有运行该任务的权限。

      3. 执行策略:确保使用-ExecutionPolicy Bypass绕过执行策略。

      4. 确保您以最高权限运行任务

      5. 最后通过日志分析。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-22
        • 2020-08-07
        • 2015-07-27
        • 1970-01-01
        • 2013-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多