我有以下代码片段,我试图修改以在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:
我需要做些什么才能解决此问题?
答案 0 :(得分:3)
您需要有一个用户。所以你应该添加 / RU“用户名”。
我建议将任务作为 system 运行。
您不需要完整地址。
“c:\ windows \ system32 \ schtasks.exe”>> schtasks.exe
您可以在Windows的命令行中获得反馈,并在行尾使用“> your file.txt”。
exp:dir> “C:\ Directories.txt”
你的新鳕鱼:
$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);
}