PHP / Windows任务计划程序 - 如何从PHP创建新任务?

时间:2015-09-15 01:14:31

标签: php scheduled-tasks wampserver

我有以下代码片段,我试图修改以在php中从Windows创建计划任务。我试过exec,然后pclose(popen($ cmd))没有成功。 php脚本执行但没有调用命令,我在任务调度程序gui中看不到添加的计划任务。

问题

如何从php调用schtasks.exe来创建新任务?

代码段

SELECT * FROM tblb,tbla
WHERE tblb.id= 1 AND FIND_IN_SET(tbla.id, tblb.aid)

修改

问题的本地化

Apache错误日志显示此消息

  

错误:帐户名和安全ID之间没有映射。

     

(46,4):UserId:错误:帐户名和安全ID之间没有映射   已经完成了。

     

(46,4):用户ID:

我需要做些什么才能解决此问题?

2 个答案:

答案 0 :(得分:3)

  1. 您需要有一个用户。所以你应该添加 / RU“用户名”
    我建议将任务作为 system 运行。

  2. 您不需要完整地址。
    “c:\ windows \ system32 \ schtasks.exe”>> schtasks.exe

  3. 您可以在Windows的命令行中获得反馈,并在行尾使用“> your file.txt”。
    exp:dir> “C:\ Directories.txt”

  4. 你的新鳕鱼:

        $daysList = join(", ", $days);
    
        $cmd = "schtasks.exe /CREATE /SC WEEKLY /D \"$daysList\" /TN \"Action Item Reminder\" /TR \"php.exe  C:\\wamp\\www\\aim\\module\\Application\\src\\Application\\Controller\\sendmail.php\" /ST 00:01 /f /RU System";
    
        pclose(popen("start /B ". $cmd, "r")); // OR exec($cmd);
    
        //echo "schtasks.exe /CREATE /SC WEEKLY /D \"$daysList\" /TN \"Action Item Reminder\" /TR \"C:\\wamp\\bin\\php\\php5.5.12\\php.exe  C:\\wamp\\www\\aim\\module\\Application\\src\\Application\\Controller\\sendmail.php\" /ST 00:01 /f /RU System";
        //echo '/CREATE /SC WEEKLY /D "'.  $daysList .'" /TN "Action Item Reminder" /TR "C:\wamp\www\aim\module\Application\src\Application\Controller\sendmail.php" /ST 00:01 /f /RU System"'; die();
    
        $cmd ="schtasks.exe /Change /TN \"Action Item Reminder\" /RU System";
        if (isset ($activate))
        {
            $emailOptionTable->update('true', 'Activate Reminders');
            pclose(popen("start /B ". $cmd." /Enable", "r")); // OR exec($cmd);
        }
        else
        {
            $emailOptionTable->update('false', 'Activate Reminders'); 
            pclose(popen("start /B ". $cmd." /Disable", "r")); // OR exec($cmd);
        }
    

    祝你好运。

答案 1 :(得分:0)

$ daysList = join(“,”,$ days);

$cmd = "schtasks.exe /CREATE /SC WEEKLY /D \"$daysList\" /TN \"Action Item Reminder\" /TR \"php.exe  C:\\wamp\\www\\aim\\module\\Application\\src\\Application\\Controller\\sendmail.php\" /ST 00:01 /f /RU System";

pclose(popen("start /B ". $cmd, "r")); // OR exec($cmd);

//echo "schtasks.exe /CREATE /SC WEEKLY /D \"$daysList\" /TN \"Action Item Reminder\" /TR \"C:\\wamp\\bin\\php\\php5.5.12\\php.exe  C:\\wamp\\www\\aim\\module\\Application\\src\\Application\\Controller\\sendmail.php\" /ST 00:01 /f /RU System";
//echo '/CREATE /SC WEEKLY /D "'.  $daysList .'" /TN "Action Item Reminder" /TR "C:\wamp\www\aim\module\Application\src\Application\Controller\sendmail.php" /ST 00:01 /f /RU System"'; die();

$cmd ="schtasks.exe /Change /TN \"Action Item Reminder\" /RU System";
if (isset ($activate))
{
    $emailOptionTable->update('true', 'Activate Reminders');
    pclose(popen("start /B ". $cmd." /Enable", "r")); // OR exec($cmd);
}
else
{
    $emailOptionTable->update('false', 'Activate Reminders'); 
    pclose(popen("start /B ". $cmd." /Disable", "r")); // OR exec($cmd);
}