Ошибка Powershell при попытке создать запланированную задачу? Не удается обработать преобразование аргумента для параметра «Аргумент»

#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. Используйте другое имя для переменной.

Подробнее здесь