我已经写了一个Web程序在PHP中需要停止一个Windows服务,并启动它时,像这样运行:
exec('net stop spooler'); //to stop printer spooler exec('net start spooler'); //to start printer spooler
上面的代码不会停止打印机后台处理程序,我想我知道为什么,因为当我打开cmd-命令提示符正常和键入net start spooler
我得到访问拒绝…但是当我打开命令行pipe理员命令行将工作,所以我认为Apache还需要给予pipe理员权限,以便上述代码可以工作,但我不知道如何授予代码以pipe理员身份运行。
打印机后台打印程序的Windows服务可以find,当你点击开始>types运行>在运行命令typesservices.msc然后你会看到打印机后台打印作为Windows服务之一…当上面的代码运行…它应该停止服务或启动它
你也尝试过sc
命令吗? 类似的问题
而不是跳过行政执行hoops,你怎么PHP写入一个文件,一个物理文件,并有一个单独的程序,运行pipe理权限,发射net stop
命令? 这不仅确保执行,而且确保安全。 为了获得最佳的可靠性,您可以使用一个Timer
来快速检查VB.NET应用程序,并且每隔x秒检查一次该文件,但是我相信您也可以在运行的batch file中轻松一下。 但是使用VB.NET,你可以在后台运行进程,并确保它保持运行。
希望这个光芒。