PowerShell脚本没有完成使用Windows任务计划程序计划时应执行的操作

我发现了一个脚本,可以删除X天以上的文件并进行了一些更改,以便我扫描不同的networking文件夹,以查看是否有超过X天的文件。 现在,当我使用PowerShell ISE运行脚本时,该脚本正常工作,正在做它应该做的事情。 这大约需要一个小时。

现在,当我尝试使用Windows 任务计划程序计划脚本时, 任务将在10秒钟后启动并完成,但脚本未运行。 那么没有文件被删除?


计划任务设置:

一般

  • 使用具有作为批处理权限login的帐户运行任务

  • 运行用户是否login

  • 以最高的权限运行

触发

  • 每日运行

行动

  • 程序/脚本:运行一个程序C:\ windows \ system32 \ windowspowershell \ v1.0 \ powershell.exe

  • 参数:-File“C:\ scripts \ deletefiles.ps1”


我究竟做错了什么? 或者为什么不运行脚本?

脚本可以在这里find 。

您需要Set-ExecutionPolicy,以便运行计划任务的帐户被允许执行PowerShell脚本:

Set-ExecutionPolicy -Scope LocalMachine Unrestricted 

根据Set-ExecutionPolicy的帮助文件,LocalMachine的作用域为该计算机的所有用户设置策略。 相对于如果您只是从您自己的用户帐户Set-ExecutionPolicy Unrestricted ,它只会为您自己的用户帐户设置该策略。 此外,还有针对32位和64位版本PowerShell的单独策略。

而且,如果Set-ExecutionPolicy -Scope LocalMachine Unrestricted对您来说是一个安全性过高的问题,您可以通过以该用户身份login并执行该操作,或者在该用户的安全上下文中执行一个进程,该用户的策略。

噢,也许,这可能不需要说,但我们不知道您分配给此计划任务的用户是否具有从这些UNCpath中删除内容所需的权限。