![PowerShell 脚本未完成使用 Windows 任务计划程序安排的计划任务](https://linux22.com/image/604032/PowerShell%20%E8%84%9A%E6%9C%AC%E6%9C%AA%E5%AE%8C%E6%88%90%E4%BD%BF%E7%94%A8%20Windows%20%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92%E7%A8%8B%E5%BA%8F%E5%AE%89%E6%8E%92%E7%9A%84%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1.png)
我找到一个可以删除超过 X 天的文件的脚本,并对其进行了一些修改,以便我可以扫描不同的网络文件夹,查看是否存在超过 X 天的文件。现在,当我使用PowerShell ISE脚本运行良好,并执行其应有的功能。大约需要一个小时。
现在,当我尝试使用 Windows 安排脚本时任务计划程序,任务启动并在 10 秒后完成,但脚本未运行。那么没有文件被删除吗?
计划任务设置:
一般的
使用具有批处理权限登录的帐户运行任务
无论用户是否登录都运行
以最高权限运行
扳机
- 每日跑步
行动
程序/脚本:运行程序 C:\windows\system32\windowspowershell\v1.0\powershell.exe
参数:-File “C:\scripts\deletefiles.ps1”
我做错了什么?或者为什么脚本没有运行?
剧本可以在这里找到。
答案1
你需要设置执行策略以便允许运行计划任务的帐户执行 PowerShell 脚本:
Set-ExecutionPolicy -Scope LocalMachine Unrestricted
根据 Set-ExecutionPolicy 的帮助文件,LocalMachine 的范围为该计算机的所有用户设置策略。与仅从您Set-ExecutionPolicy Unrestricted
自己的用户帐户设置策略不同,它仅为您自己的用户帐户设置该策略。此外,PowerShell 的 32 位和 64 位版本也有单独的策略。
如果Set-ExecutionPolicy -Scope LocalMachine Unrestricted
这对您来说是一个太大的安全隐患,您可以通过以该用户的身份登录并执行此操作来仅为该用户设置它,或者在该用户的安全上下文中执行一个进程并为该用户设置策略。
哦,好吧,这可能不需要说,但我们不知道你分配给这个计划任务的用户是否具有从这些北卡罗来纳大学路径。