我从PHP页面调用PowerShell脚本,如下所示:
file.php
try{
echo shell_exec('powershell.exe -executionpolicy bypass -NoProfile -File "C:\wamp64\www\xpress_upgrade\Schedule_CRON.ps1"');
}catch (Exception $e){
echo "Oops: Something went wrong.<br />".$e->getMessage();
}
在我的PowerShell脚本中,我正在读取.txt文件中的输入并基于id创建许多任务。下面是我的PowerShell脚本。
$lines = Get-Content C:\wamp64\www\xpress_upgrade\Scheduled_data.txt | Where {$_ -notmatch '^\s+$'}
foreach ($line in $lines) {
$fields = $line -split '\s+'
$id = $fields[0]
$time = $fields[1]
$description = "scheduled workflow " + $id
#creating tasks in task scheduler on Workflow scheduled time
$argument = 'C:\wamp64\www\xpress_upgrade\workflow_execution_progress_sch.php ' + $id
Write-Host $argument
$action = New-ScheduledTaskAction -Execute 'C:\wamp64\bin\php\php7.4.9\php.exe' -Argument $argument
$trigger = New-ScheduledTaskTrigger -Once -At $time
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $description -Description $description
}
如果我直接运行PowerShell,则任务运行正常。但是如果我通过PHP运行,则任务可以正常运行,但由于以下安全问题而无法运行。 需要设置用户帐户名并设置运行状态是否可以登录。-如何实现?
任务计划程序未启动任务“ \ WMS计划的工作流程01” 因为启动条件满足时用户“ **”尚未登录 遇见。用户操作:确保用户已登录或更改任务 定义以允许用户注销时启动。