管理员和拥有管理员权限之间是否有任何区别?在Windows上?

时间:2014-04-17 11:08:51

标签: php windows apache permissions

我有一个奇怪的问题。

我正在使用由我和第三方编写的Windows软件。

第三方创建了一个安装程序。此安装程序以编程方式运行请求管理员权此安装程序还将Apache安装为Windows服务。由于安装程序以管理员权限运行,因此我们希望Apache Windows服务以管理员权限运行。

我们看到的问题是,我们在Apache上运行的php脚本得到的结果不同,具体取决于Apache的启动方式。

如果Apache作为Windows服务运行,通过上面提到的安装程序安装,我们得到了错误的结果。如果Apache是​​从cmd提示符(以用户管理员身份启动)启动的,那么php脚本会提供正确的结果。

有人可以建议可能出现的问题吗?

NB。 php脚本正在运行CutyCapt.exe(一个png捕获实用程序的网站)。

3 个答案:

答案 0 :(得分:1)

Apache 服务,无论其安装方式如何,始终始于" LocalSystem"帐户(除非您事后更改)。

另一方面,当您通过命令行启动Apache 进程时,它将在您运行命令行(cmd.exe)的同一帐户下启动。

我的猜测是LocaSystem无法访问此应用可能需要的桌面,或者它无法执行exe ...检查Apache和PHP的错误日志。另请检查Windows事件日志。

答案 1 :(得分:0)

安装程序需要管理员权限才能对系统进行修改(例如,写入所有用户共享的HKLM注册表项)。 它并不自动暗示安装程序将正在安装的服务配置为在具有管理员权限的帐户下运行。

服务和从命令行启动的“普通”应用程序之间存在一个很大的区别,即服务无法访问可能显示某些消息的“屏幕”。并且服务无法访问某些常用位置,例如用户的临时文件存储等,因为它们在“没有用户登录”的环境中运行。

如果不更准确地了解你收到的“错误结果”是什么,那么究竟究竟是什么问题无法猜到。

这个Starting a Windows service in an interactive session答案可能会提供一些额外的提示。

我首先检查phpinfo()和环境变量,然后检查CutyCapt.exe的要求。例如默认情况下无法访问用户的临时文件存储并且无法自由读取注册表值的事实是我已经看到的问题

对于有0问题的Windows + Apache + MySQL + PHP安装程序,我建议使用Bitnami的WAMP堆栈https://bitnami.com/stack/wamp,自包含,便携式

答案 2 :(得分:0)

我赞成了正确的答案。还有一件事要尝试。转到控制面板=>管理工具=>服务。 (或者只需输入" services.msc"按下WIN + R后弹出“运行”对话框。)

在“服务管理”屏幕中,右键单击Apache服务。然后转到LogOn选项卡。指定您希望服务运行的帐户和密码。