我已经编写了一个基本脚本来执行并发送带附件的电子邮件,我已经在PowerShell中对此进行了测试。但是当我尝试将其创建为任务调度程序时,我收到以下错误:
但是我在PowerShell中完全相同的代码执行没有问题。
这是我在任务调度程序中的视图:
我错过了什么?我已经设置了执行策略,这不是问题,我已经测试了我的代码,那里没有问题。
答案 0 :(得分:2)
请改用-File
参数:
-File "C:\path\to\your.ps1"
PowerShell的调用操作符(&
)仅在PowerShell中有效,因此您需要将其放在参数字符串中:
"& 'C:\path\to\your.ps1'"
虽然这也有用,但它有一些缺点,最重要的是它只返回0(成功)或1(失败)作为退出代码,而不是脚本的实际退出代码。
答案 1 :(得分:1)
您的参数需要包含-Command
参数,而不仅仅是您要运行的代码。此外,您运行的代码需要是一个字符串,而不是原始的Powershell代码,否则命令行将尝试解释它。将参数设置为:
-Command '&"C:\Users\Martyn\Documents\Powershell Scripts\Working.ps1"'
或者,您可以直接尝试-File
参数,尽管它存在已知问题:
-File "C:\Users\Martyn\Documents\Powershell Scripts\Working.ps1"
答案 2 :(得分:0)
如果其他人遇到此错误,则需要先将ProcessMitigation
安装到PowerShell中,然后才能使用它。默认情况下,它不存在。
安装步骤:
Save-Module -Name ProcessMitigations -Path <path>
命令以下载组件。提供实际路径而不是下载。Install-Module -Name ProcessMitigations
进行安装。更多here。