以管理员身份运行 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 脚本?
以用户“apache”运行的 Perl 无法加载 DBD::mysql 而其他用户可以
写了一个bat脚本,用来启动windows服务,系统是windows7.每次运行这个脚本都要右击选择以管理员身份运行。