📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

cmd提权

创建时间2019-06-24最后修改2019-06-24原位置/程序员成长之旅/Batch学习/字数258
目录:程序员成长之旅/Batch学习

正好看到, 那就一行代码解决问题吧

UPDATE 10.12: 将 %s0 改为 ""%s0"" 以支持路径中有空格后无法正确执行的问题。

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit


这一行代码会重新以管理员运行当前的 bat 脚本文件, 注意这行代码开始的 "%1" 是接收参数用的.

双击运行 "%1" 默认初始值为空, 该行代码执行, 即会执行" start ... ", execute部分为提权执行当前 bat 文件, 并会传入 "::" 这个注释符号为参数

则这行代码变成了注释 ":: start ... ", 不会执行了, 转而接着执行下面的 bat 命令, exit 的用处就很明显了吧~

这样放在第一行, 下面的所有命令就都是管理员权限跑的了.

作者:Scruel 链接:https://www.zhihu.com/question/34541107/answer/243592603 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。