You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell创建计划任务时Argument参数转换报错如何解决

核心问题根源

你犯了PowerShell变量命名的基础错误:$args是PowerShell的系统自动保留变量,专门用于存储传递给函数/脚本/代码块的未命名参数,不允许用户自定义赋值。你强行给$args赋值后,该变量的实际类型不符合New-ScheduledTaskAction的-Argument参数要求的字符串类型,因此触发类型转换报错。

修复步骤
  1. 将自定义的参数变量改名,不要使用系统保留的$args作为变量名,比如改为$exeArgs、$taskArguments都可以
  2. 如果你传递的参数值里包含空格(比如示例中的my message、MyEmailSubject),需要用双引号嵌套转义,避免执行时被拆分为多个参数
修改后可用的完整代码

首先是变量定义部分:

$sendEmailCommand = "C:\Test\Test.exe"
# 替换原$args为自定义变量名,带空格的参数值用双引号嵌套转义
$taskArguments = "-m smtp.gmail.com -p 587 -u myemail -p mypassword -t ""my message"" -o tls=yes -k ""MyEmailSubject"" -g recipientEmailAddr"

然后是计划任务创建部分:

$Trigger= New-ScheduledTaskTrigger -AtStartup
$User= "NT AUTHORITY\SYSTEM"
# 替换-Argument后的变量为你自定义的非保留名
$Action= New-ScheduledTaskAction -Execute $sendEmailCommand -Argument $taskArguments
Register-ScheduledTask -TaskName "Send Restart Notification" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

内容的提问来源于stack exchange,提问作者geekygeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:45:04