我正在尝试创建PowerShell脚本以按计划任务下载并执行.exe
文件。我的脚本是:
$argument = "-Command `"& '(New-Object System.Net.WebClient).DownloadFile(‘https://webserver/file.exe’,’%TEMP%\file.exe’); Start-Process “%TEMP%\file.exe'""
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument $argument
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$trigger = New-ScheduledTaskTrigger -AtStartup
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger Register-ScheduledTask "ExampleTask" -InputObject $task -Force
如果我尝试运行脚本,则会出现以下错误:
At C:\Users\HP\Desktop\1\1.ps1:3 char:50
+ $principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" ...
+ ~~
Unexpected token 'NT' in expression or statement.
At C:\Users\Folder\script.ps1:5 char:118
+ ... rigger Register-ScheduledTask "ExampleTask" -InputObject $task -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
The string is missing the terminator: ".
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
原因以及如何解决?
答案 0 :(得分:0)
似乎是带有参数字符串的奇数格式,Register-ScheduledTask
不在单独的行上。
我建议使用here字符串:
$argument = @'
-Command "& '(New-Object System.Net.WebClient).DownloadFile(‘https://webserver/file.exe’,’%TEMP%\file.exe’); Start-Process %TEMP%\file.exe'"
'@
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument $argument
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$trigger = New-ScheduledTaskTrigger -AtStartup
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger
Register-ScheduledTask "ExampleTask" -InputObject $task -Force