#powershell #scheduled-tasks #taskscheduler #windows-task-scheduler
Вопрос:
Я пытаюсь создать запланированную задачу, которая запускается при запуске системы. Я создаю эту запланированную задачу в PowerShell со следующим кодом.
$Trigger= New-ScheduledTaskTrigger -AtStartup
$User= "NT AUTHORITYSYSTEM"
$Action= New-ScheduledTaskAction -Execute $sendEmailCommand -Argument $args
Register-ScheduledTask -TaskName "Send Restart Notification" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force`
Ниже приведены переменные:
$sendEmailCommand = "C:TestTest.exe"
$args = "-m smtp.gmail.com -p 587 -u myemail -p mypassword -t my message -o tls=yes -k MyEmailSubject -g recipientEmailAddr"
Однако, когда я запускаю приведенный выше сценарий, я получаю следующую ошибку.
New-ScheduledTaskAction : Cannot process argument transformation on parameter 'Argument'. Cannot convert value to type
Если я удалю -Argument
его из строки с New-ScheduledTaskAction
, то он будет работать нормально без ошибок, и задача появится в планировщике задач, как и ожидалось. Вот как выглядит эта строка кода:
$Action= New-ScheduledTaskAction -Execute $sendEmailCommand
Я пробовал различные перестановки кавычек и без кавычек. Что я делаю не так?
Ответ №1:
$args
является зарезервированным ключевым словом powershell. Используйте другое имя для переменной.
Подробнее здесь