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