以管理员身份运行 cgi perl 脚本

Posted

技术标签:

【中文标题】以管理员身份运行 cgi perl 脚本【英文标题】:Running a cgi perl script as an Administrator 【发布时间】:2011-11-10 20:01:49 【问题描述】:

我正在为一个网站编写一个 perl 脚本,我需要能够通过该网站控制 VirtualBox。我不知道从哪里开始,或者我什至想在正确的区域进行调试,但是这里是。

我的服务器在 Windows Server 2008 R2 上运行 IIS7。我还通过 vboxmanage 命令行界面运行 2 个虚拟机。这些虚拟机在 SERVER\administrator 下运行。

当我打开我的网站时,它会请求登录。我以 SERVER\administrator 身份登录网站,然后单击使用 xmlhttprequest 调用我的脚本的链接。现在,通常,我以哪个用户身份运行这些命令并不重要,但使用 vboxmanage,如果我以不同用户身份运行命令,则 VM 列表会有所不同。我试过whoami,它返回SERVER\administrator,但%DOMAINNAME%\%USERNAME%返回服务器连接的域作为域名和SERVER$作为用户名。然后 vboxmanage 命令失败。

在网站上,模拟已打开。当我关闭模拟时,whoami 请求更改为 iis apppool\website。关于如何解决这个问题的任何想法?

最后一点,我曾考虑过使用 runas,但由于它会提示输入密码,因此无法通过脚本调用它(我想那将是一个糟糕的安全决定)。

【问题讨论】:

【参考方案1】:

这是一个经常出现、众所周知且已得到很好解决的问题。与其让一个大程序处理来自 Web 的请求并管理 VM(强耦合),不如将关注点分开并编写两个程序,每个程序只执行一项任务。

在 Web 服务器上下文中运行的面向用户的程序可以继续使用有限的权限。 VM 管理器是一个独立程序,以必要的管理员权限运行,可以从调度程序重复运行,也可以作为守护程序/服务运行。

让第一个通过message-queue 与第二个通信。

【讨论】:

以上是关于以管理员身份运行 cgi perl 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Apache 2 以运行 Perl CGI 脚本?

如何在Windows上运行带CGI的便携式Perl?

以用户“apache”运行的 Perl 无法加载 DBD::mysql 而其他用户可以

写了一个bat脚本,用来启动windows服务,系统是windows7.每次运行这个脚本都要右击选择以管理员身份运行。

bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法

如何以 root 身份运行 Perl 脚本但仍会影响用户 gconf 设置