在任务计划程序中运行PowerShell

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

Solutions Collecting From Web of "在任务计划程序中运行PowerShell"

对计划任务进行故障排除是后面的一个难题,因为您无法真正了解发生了什么事情。 这些是你可能要检查的一些事情:

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

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

  • 检查您的任务是否实际终止,或者进程是否仍在运行(通过Process Explorer , Get-Process ,Task Manager …)。

  • 检查最后一次运行结果以查看命令的退出代码。

  • 启用计划任务的历史记录( 操作→启用所有任务历史记录 )。 这会给你至少一些关于这个任务在做什么的信息,不管它是否开始,以及是否发生了错误。 您需要管理权限才能启用任务历史记录。

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

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

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

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

     New-EventLog -Source MyEventSource -LogName Application 

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

我所面对的几个主要观察:

1)而不是只提供powershell.exe ,请尝试提供完整的PS路径C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe

2)许可是一个更多的关注。 您正在运行该任务的用户可能没有运行该权限的权限。

3)执行策略 – 确保使用-executionpolicy旁路绕过执行策略

4)确保您正在运行具有最高权限的任务

5)最后,通过分析日志

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

我也改变了安全选项属性,它帮助。

我没有检查:不要存储密码,现在运行没有我登录到网络。

和平