批处确实没有直接创建快捷方式并加持管理员权限的功能,但调用 vbs/jscript/powershell/python 等脚本功能均可实现,且每个脚本都能一贯到底,前三者已被系统内置,直接可用,但相比较还是 powershell 代码最为简洁,就是启速稍慢,以下是一个批处套壳 powershell 代码的版本(存为 test.bat 运行),先创建快捷方式,再修改其提权标识位...
代码中假设目标执行文件路径为 C:\xyz\abc.exe(可自定义,在第5行),创建的桌面快捷方式名称为 abc.lnk(可自定义,在第二行)- <# ::
- @echo off & powershell "$v='%userprofile%\desktop\abc.lnk'; iex(${%~f0}|out-string)" &pause&exit/b
- #>
- $ws=new-object -comobject wscript.shell; $sc=$ws.createShortcut($v)
- $sc.targetPath='C:\xyz\abc.exe'; $sc.save()
- $b=[io.file]::readallbytes($v); $b[21]=0x20; [io.file]::writeallbytes($v, $b); exit
复制代码
若要将已有的桌面快捷方式提权,可用以下代码(存为 "提权.bat"),将某个桌面快捷方式直接托给它运行即可...- @echo off &if "%~1"=="" exit/b
- powershell "$b=[io.file]::readallbytes('%~1'); $b[21]=0x20; [io.file]::writeallbytes('%~1', $b)"
- pause&exit/b
复制代码