如何通过php禁用/启用计划任务

时间:2018-12-22 13:45:15

标签: php

我想通过我的PHP代码启用和禁用计划的任务。

我尝试了

<?php
$cmd = "c:\\windows\\system32\\schtasks.exe /Change /TN openChrome /Enable";
$output = shell_exec($cmd);
echo $output;
?>

<?php
$cmd = "schtasks /Change /TN openChrome /Enable";
$output = shell_exec($cmd);
echo $output;
?>

当我为运行或结束任务编写代码时,这些代码可以正常工作。但是要启用或禁用任务,它们什么也不做。

启用/禁用代码有什么问题?

1 个答案:

答案 0 :(得分:0)

花了将近5天后,我找到了解决方案。要在任务计划程序上启用/禁用任务,您必须以管理员权限运行启用/禁用(“ c:\ windows \ system32 \ schtasks.exe / Change / TN openChrome / Enable”)命令。可以通过以管理员身份运行命令提示符来运行管理员命令。但是很难从php运行管理员命令。 因此,对于这两种情况,您都想以管理员身份从php运行cmd.exe命令或schtasks.exe命令,只需从C:\ Windows \ System32复制cmd.exe或schtasks.exe文件,然后粘贴到其他目录中。例如,我将其粘贴到D:\驱动器。 现在右键单击它。 单击属性。 转到“兼容性”选项卡。 选中“以管理员身份运行该程序”。 单击确定。 现在转到您的PHP文件,并在粘贴cmd或schtasks文件的命令之前使用该路径。 (即,在我的情况下,我将SCHTASKS文件粘贴到D:中。因此,现在我的命令$ cmd =“ D:\ SCHTASKS / Change / TN openChrome / Enable”)。

此方法以管理员身份从PHP exec()或shell_exec()函数运行所有SCHTASKS或cmd命令。

注意:从C:\ Windows \ System32处理文件的唯一目的是,在该文件夹中,无法在属性中找到“兼容性”选项卡,并且没有选项可以始终以管理员身份运行。我不知道这种方法是否安全。