为了账号安全,请及时绑定邮箱和手机立即绑定

在任务计划程序中运行PowerShell

在任务计划程序中运行PowerShell

BIG阳 2019-10-22 22:31:39
我正在使用PowerShell从电子邮件中下载数据。我想通过PowerShell运行此过程。当我像这样运行脚本时:D:\script.ps1在powershell.exe它工作正常。当我在Task Scheduler中计划它时,什么也没有发生。我尝试将其设置为“程序/脚本”:powershellPowershell.exepowershell.exe添加参数:-executionpolicy bypass -file D:\script.ps1-file D:\script.ps1-file "D:\script.ps1"没有任何效果。我正在使用Windows 2008 R2。
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

对排定的任务进行故障排除在后方很麻烦,因为您无法真正看到正在发生的事情。这些是您可能要检查的一些事项:


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


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


检查你的任务实际终止或者如果进程仍在运行(通过Process Explorer中,Get-Process任务管理器,...)。


检查上次运行结果中命令的退出代码。


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


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


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


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

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


New-EventLog -Source MyEventSource -LogName Application

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


查看完整回答
反对 回复 2019-10-22
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我所面对的主要观察结果很少:

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

  2. 许可是另一个需要关注的问题。您正在通过其运行任务的用户可能没有运行该任务的权限。

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

  4. 确保您以“ 最高特权”运行任务。

  5. 最后,通过分析日志。


查看完整回答
反对 回复 2019-10-22
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

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


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


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


查看完整回答
反对 回复 2019-10-22
  • 3 回答
  • 0 关注
  • 1578 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信