我有一个 powershell 脚本,每天早上打开一个 Excel 文件,运行一个宏然后关闭。这个脚本一直运行良好,直到最近我们将旧式网络驱动器移至 Sharepoint Online。
如果我手动运行该脚本,它将启动并执行其应执行的操作。但是,当我将其放在任务计划程序上时,它不会打开该文件。
我曾尝试:
- 将脚本放在我的 OneDrive 文件夹之外:脚本运行但文件不会打开。
- 将脚本和文件放在 OneDrive 和 Sharepoint 之外:脚本运行并且文件打开。
- 在 OD/SP 中,运行任务计划程序以打开 Powershell 窗口并从那里运行脚本:第一个窗口打开,但运行第二个脚本时 Powershell 关闭。
运行任务的用户(我自己)可以完全控制脚本和文件所在的文件夹,并且如上所述,在所有这些情况下,如果手动运行脚本,脚本就会起作用。我似乎无法在互联网上找到任何东西,也无法在日志中找到任何东西(除非我瞎了眼,否则在运行所有先前的任务后都没有创建任何日志),我开始无能为力了。
有人有什么想法/建议吗?
谢谢!
答案1
任务计划程序 PowerShell 脚本未运行
根据您的描述以及我所看到的根据您的配置的 XML 文件你有……
<Exec>
<Command>"C:\Path\To\OneDrive - Company Ltd\Scripts\pwsh\DonwloadOpen.ps1"</Command>
<Arguments>-ExecutionPolicy Bypass</Arguments>
<Exec>
我认为需要像这样配置才能从任务计划程序执行 PowerShell。。。
<Exec>
<Command>Powershell</Command>
<Arguments>-ExecutionPolicy Bypass -File "C:\Path\To\OneDrive - Company Ltd\Scripts\pwsh\DonwloadOpen.ps1"</Arguments>
</Exec>
因此从行动选项卡上你将创建一个行动定义为:
此外,在您的情况下,其中一些选项可能会有所帮助,但基于安全性和您的配置,我不能 100% 确定它们是必要的,但很容易测试。。。
来自一般的计划任务选项卡,确保无论用户是否登录都运行和以最高权限运行两个选项均被选中。