【发布时间】:2015-06-19 06:56:57
【问题描述】:
我用 php 编写了一个 web 程序,它需要停止一个 windows 服务并在运行时启动它:
exec('net stop spooler'); //to stop printer spooler
exec('net start spooler'); //to start printer spooler
上面的代码不会停止打印机后台处理程序,我想我知道为什么,因为当我正常打开 cmd-命令提示符并键入 net start spooler 我得到访问拒绝...但是当我以管理员身份打开 cmd-命令提示符时命令行可以工作,所以我认为apache还需要获得管理员权限,这样上面的代码才能工作,但我不知道如何授予代码以管理员身份运行。
当您在运行命令类型 services.msc 中单击开始 > 键入运行 > 时可以找到打印机后台处理程序 Windows 服务,然后您将看到打印机后台处理程序作为 Windows 服务之一...当上述代码运行时...它应该停止该服务或启动它
【问题讨论】:
-
您的诊断听起来很准确,引入正确的凭据应该可以解决问题。这可能会在 ServerFault.com 上得到更好的解决,因为它与平台安全性而非编程有关。
标签: php printing windows-services uac administrator