4

假设我有一个脚本需要从普通用户不允许阅读的地方(例如其他用户的文件夹)读取信息。

目前我所能做的就是抱怨没有以“超级用户”身份运行并退出,但我更希望脚本本身要求提升。

4

3 回答 3

3

根据MSDNPerlMonks,您可以尝试:

Win32::FileOp::ShellExecute( runas => 'yourprogram.exe' )

或者

Win32::FileOp::ShellExecute( runasuser => 'yourprogram.exe' )

这些应该(未经测试)在需要时要求您提高高度。(仅适用于 Windows 7)。

相关:在运行时请求管理员权限

于 2012-06-13T17:09:32.330 回答
2

厌倦了在自己的工作中没有很好的答案,我写了Win32::RunAsAdmin。它所做的只是通过 OLE 调用 Windows Shell,并使用“runas”作为动词,但它很方便地对其进行了打包,因此您所要做的就是在代码的开头粘贴以下内容:

use Win32::RunAsAdmin qw(force);

在导入步骤中,它将检查提升的权限,如果您已经在提升模式下运行,它会静默返回。否则,它将以提升模式重新启动脚本,并弹出 UAC。

于 2014-04-25T15:18:23.853 回答
2

如果您可以通过快捷方式启动,则可以使用以下命令:

  1. 创建 perl.exe 的快捷方式
  2. 编辑快捷方式。

    1. 在快捷方式选项卡上,将“目标”更改为

      "c:...\bin\perl.exe" "c:...\script.pl"

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

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

有一个名为“ runas”的工具,但如果不询问管理员密码,我似乎无法让它工作。

于 2012-06-13T17:12:39.460 回答