【问题标题】:Run php exec function to stop windows services运行 php exec 函数来停止 windows 服务
【发布时间】: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


【解决方案1】:

根据您的 apache 设置,您可能需要将 apache 设置为以管理员身份运行

  1. 转到控制面板->管理工具_>服务

  2. 选择 Apache 服务并点击属性

  3. 在登录选项卡上尝试将其更改为管理员

  4. 重启 Apache

但一般来说,以如此高的权限运行 apache 可能不一定是最好的主意。

【讨论】:

    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多