windows - 在任务计划程序中运行 PowerShell

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

我正在使用 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。

最佳答案

对计划任务进行故障排除是一件令人头疼的事情,因为您无法真正看到发生了什么。您可能需要检查以下一些事项:

  • 检查您的命令行原则上是否正常工作,例如从 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
    

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

关于windows - 在任务计划程序中运行 PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635118/

相关文章:

windows - Powershell脚本在ISE上运行良好,但在cli上存在问题

PowerShell:为什么有时我无法重定向外部方法的标准输出和标准错误?

linux - 从 powershell (Windows) 到 linux 中的 mongodb 服务器通信

sql-server - 无法将用户添加到 SQL Server 2012 数据库

windows - 为什么我的 stderr 重定向在命令完成后没有结束?我该如何解决?

c++ - 如何将系统颜色更改为默认颜色?

c# - Windows凭据提供程序实现

windows - 将数字转换为星期几列表

multithreading - Windows Server 2008 R2时间片的大小?

node.js - Node.js安装权限