2012-06-13 61 views
3

假设我有一个脚本需要从普通用户不允许读取的地方(例如其他用户的文件夹)读取信息。如何使用UAC提升Perl进程

目前我所能做的只是抱怨没有作为“超级用户”运行而退出,但我宁愿让脚本自己去寻求提升。

+0

最简单的解决方案可能是为您的脚本创建一个快捷方式,并设置以管理员身份运行该进程的快捷方式。 – ikegami

+0

@ikegami我相信这相当于右键单击并选择“以管理员身份运行”。不幸的是,Perl脚本缺少这个菜单选项,以及它们的快捷方式,其中显然涉及的相关复选框是* disabled *。 –

+0

这只是指定'perl.exe'作为程序运行的问题。将脚本作为参数传递。 (测试过) – ikegami

回答

2

如果你确定通过快捷方式启动,可以使用以下命令:

  1. 创建一个快捷方式perl.exe所在
  2. 编辑的快捷方式。

    1. 在快捷方式选项卡,将 “目标”,以

      “C:\ BIN \ perl.exe所在” “C:\ script.pl”

    2. [可选]在快捷方式选项卡上,将“开始”更改为脚本所在目录的路径。

    3. 在快捷方式选项卡上,单击“高级”,然后选中“以管理员身份运行”。

有一个名为“runas”的工具,但我似乎无法得到它不向您的管理员密码工作。

1

我在自己的作品中对这个问题没有很好的回答,所以我写了Win32::RunAsAdmin。它所做的就是调用通过OLE Windows外壳程序与“运行方式”为动词,但其打包方便,所有您需要做的就是坚持在你的代码的开头如下:

use Win32::RunAsAdmin qw(force); 

在导入一步,它将检查提升的特权,并且如果你已经在提升模式下运行,则默默地返回。否则,它将使用UAC弹出菜单以提升模式重新启动脚本。

相关问题