让批处理以管理员权限运行

fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit
  • 开头添加这行代码,批处理就会在运行时申请提权。

  • 无需写入临时文件。

  • 有传入参数时也能得到管理员权限,且提权不会丢失参数。

  • xp ~ 10 上测试正常。不支持部分极限精简的 WinPE。

Change Log

20190524

  • 修复只能传递第一个参数的 Bug。

20190221

  • 一点改进,不切换当前目录。

20181109

  • 一点改进,使得批处理被传参时也能提权。

20180401

  • 首个版本。