计划任务中的 Exchange PowerShell 永远运行

计划任务中的 Exchange PowerShell 永远运行

我有几个 Exchange 2010 PowerShell 脚本想要作为计划任务运行。

如果我使用“以不同用户身份运行”启动 PowerShell,我可以运行脚本并且它们可以正确执行。

如果我使用同一个用户安排任务,该任务将永远保持运行状态。

我如何才能知道任务卡在哪里了?

作为参考,下面是我启用 Exchange 功能的方法:

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

以下是我尝试从任务计划程序运行脚本的方法:

  • powershell -command“&{。'c:\windows\script.ps1'}”
  • powershell -文件'c:\windows\script.ps1'
  • powershell -file “c:\windows\script.ps1”

结果都一样。呼呼...

答案1

您需要修改执行策略,或者将其指定-ExecutionPolicy Bypass为命令行参数。

powershell -Command "<path to .ps1 script>" -ExecutionPolicy Bypass

答案2

不确定您是否这样做,但当我通过任务计划程序运行 PowerShell 脚本时,我使用“启动程序”操作并选择 powershell,然后从那里添加参数。这可能是您在这里做的事情,但有点不清楚。以下是屏幕截图: 在此处输入图片描述

根据 TheCompWiz 的执行策略也可能是一个问题。

答案3

我也遇到过同样的问题。对于我来说,解决方案是指定“起始于”目录(我的脚本会读取文件内容,但由于我没有指定文件的完整路径,因此无法找到该文件)。

答案4

尝试在脚本末尾添加 [taskkill /f /im "powershell.exe"],这将终止所有“powershell.exe”进程。我不知道如何终止当前的 power-shell 进程(相当于 [cmd.exe /c])。但它可以解决问题。

相关内容