Powershell 7:
我在$PSModulePath中有一个函数。从PS控制台,这工作正常:
Invoke-Main -Env DEV -Exchange AU -Period DAILY
在Windows任务计划程序中,我已配置:
Program Script: "C:\Program Files\PowerShell\7\pwsh.exe"
Add Arguments: Invoke-Main -Env DEV -Exchange AU -Period DAILY, and
Add Arguments: -Command {Invoke-Main -Env DEV -Exchange AU -Period DAILY}
尽管任务计划程序返回0x 0,但这些命令不执行任何操作
我把它放在一个.ps1文件中:
Invoke-Main -Env DEV -Exchange ALL -Period DAILY, and
& Invoke-Main -Env DEV -Exchange ALL -Period DAILY
和
AddArguments: path-to.ps1, and
AddArguments: -File path-to.ps1
两者都可以从PS控制台正常工作,但都挂起在任务计划程序与0x 41301。
我有其他的PS脚本运行从任务计划罚款,所以我知道如何做到这一点。实际上,它们包含Invoke-Main中的代码。它只是开始成为一个维护麻烦,所以我把代码移到一个函数。
我不知道如何让任务计划程序调用PS功能。
1条答案
按热度按时间juud5qan1#
我在最初的帖子之前做了谷歌搜索。但是,有时候您只是没有使用正确的搜索字符串。
今天,经过Google搜索,我发现了这个:
Use Scheduled Tasks to Run PowerShell Commands on Windows
“秘诀”是将&符号与-Command开关一起使用。因此,最终的任务计划程序命令字符串为:
将-NoExit开关添加到pwsh.exe命令中也有助于调试,直到进程完全调试完毕。
希望这对将来有人发现这个问题有帮助。