计划任务中的Exchange PowerShell会永久运行

我有一些Exchange 2010 PowerShell脚本,我希望按计划任务运行。

如果我使用“以其他用户身份运行”来启动PowerShell,那么我可以运行这些脚本并正确执行。

如果我使用同一个用户来安排一个任务,那么这个任务永远处于运行状态。

我怎样才能找出任务卡住的地方?

作为参考,这里是我如何启用Exchange的东西:

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

以下是我尝试从Task Scheduler运行脚本的方法:

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

所有的结果都一样。 格儿…

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

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

不知道这是怎么做的,但是当我通过任务调度程序运行PowerShell脚本时,我使用“启动程序”操作并selectPowerShell,然后从那里添加参数。 这可能是你在这里做的,但是有点不清楚。 这里有一个截图: 在这里输入图像描述

每个TheCompWiz执行策略也可能是一个问题。

我有同样的问题。 在我的情况下,解决scheme是指定“开始”目录(我的脚本将读取文件的内容,它不会find,因为我没有指定文件的完整path)。

我有同样的问题,并通过“user279399”使用taskkill命令的评论是超级有用的,只需要修改。 这是我的解决scheme在参数语法的结尾

 taskkill /f /fi "USERNAME eq domain\exchadmin" /im powershell.exe 

该命令只会杀死在该用户帐户下运行的powershell会话。 运行计划任务最好有一个单独的交换pipe理员帐户。

尝试添加到脚本的末尾[taskkill / f / im“powershell.exe”]这将杀死所有“powershell.exe”进程。 我不知道如何杀死当前的Power-Shell进程(相当于[cmd.exe / c])。 但它会做的伎俩。