假设我有一个脚本需要从普通用户不允许阅读的地方(例如其他用户的文件夹)读取信息。
目前我所能做的就是抱怨没有以“超级用户”身份运行并退出,但我更希望脚本本身要求提升。
Win32::FileOp::ShellExecute( runas => 'yourprogram.exe' )
或者
Win32::FileOp::ShellExecute( runasuser => 'yourprogram.exe' )
这些应该(未经测试)在需要时要求您提高高度。(仅适用于 Windows 7)。
相关:在运行时请求管理员权限
厌倦了在自己的工作中没有很好的答案,我写了Win32::RunAsAdmin。它所做的只是通过 OLE 调用 Windows Shell,并使用“runas”作为动词,但它很方便地对其进行了打包,因此您所要做的就是在代码的开头粘贴以下内容:
use Win32::RunAsAdmin qw(force);
在导入步骤中,它将检查提升的权限,如果您已经在提升模式下运行,它会静默返回。否则,它将以提升模式重新启动脚本,并弹出 UAC。
如果您可以通过快捷方式启动,则可以使用以下命令:
编辑快捷方式。
在快捷方式选项卡上,将“目标”更改为
"c:...\bin\perl.exe" "c:...\script.pl"
[可选] 在快捷方式选项卡上,将“开始于”更改为脚本所在目录的路径。
有一个名为“ runas
”的工具,但如果不询问管理员密码,我似乎无法让它工作。