无忧启动论坛

标题: 批处理获取管理员权限各种写法 [打印本页]

作者: lintrainwy    时间: 2017-11-19 21:35
标题: 批处理获取管理员权限各种写法
本帖最后由 comzhongwy 于 2017-12-28 11:25 编辑

你觉得哪种写法更好?

  1. @ECHO OFF
  2. setlocal ENABLEDELAYEDEXPANSION
  3. mode con: cols=65 lines=25
  4. color 0a

  5. :-------------------------------------  
  6. echo 检查管理员权限
  7. >NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
  8.     ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
  9.     ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
  10.     CSCRIPT //Nologo "%TEMP%\Getadmin.vbs"& DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL& Exit)
  11. pushd "%CD%"&& CD /D "%~dp0"
  12. :-------------------------------------  
  13. echo 检查 管理员权限...
  14. >NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
  15.     echo CreateObject^("Shell.Application"^).ShellExecute "%~f0", "%1", "", "runas", 1 > "%TEMP%\AdminRun.vbs"
  16.     echo CreateObject^("Scripting.filesystemobject"^).DeleteFile ^(WScript.ScriptFullName^) >> "%TEMP%\AdminRun.vbs"
  17.     CSCRIPT //Nologo "%TEMP%\Getadmin.vbs"& DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL& Exit)
  18. pushd "%CD%"&& CD /D "%~dp0"
  19. :--------------------------------------
  20. echo 检查管理员权限
  21. >nul 2>&1 %Windir%\System32\FLTMC.exe || (
  22.     ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
  23.     ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
  24.     CSCRIPT //Nologo "%TEMP%\Getadmin.vbs"& DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL& Exit)
  25. pushd "%CD%"&& CD /D "%~dp0"
  26. :-------------------------------------
  27. echo 检查 管理员权限...
  28. >nul 2>&1 dir "%WinDir%\system32\config" || (
  29.         set vbs=Set UAC ^= CreateObject(""Shell.Application""):^
  30.         UAC.ShellExecute ""%~0"", """", """", ""runas"", 1:window.close
  31.         mshta VBScript:Execute("%vbs%")&& exit)
  32. pushd "%CD%"&& CD /D "%~dp0"
  33. :-------------------------------------
  34. echo 检查 管理员权限...
  35. >nul 2>&1 dir "%WinDir%\system32\config" || (
  36. mshta VBScript:CreateObject("Shell.Application").ShellExecute("%~s0","goto :gotAdmin","","runas",1)(window.close)&& exit)
  37. pushd "%CD%"&& CD /D "%~dp0"
  38. :-------------------------------------
  39. echo 检查 管理员权限...
  40. %1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&& exit
  41. pushd "%CD%"&& CD /D "%~dp0"
  42. :-------------------------------------
  43. echo 检查 管理员权限...
  44. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&& exit
  45. pushd "%CD%"&& CD /D "%~dp0"
  46. :-------------------------------------

  47. ::以下为你的批处理内容

  48. pause
复制代码


作者: dytechnology    时间: 2017-11-20 10:05
不明觉厉
作者: wuhuayu    时间: 2017-11-21 21:23
楼主会vbs吗
作者: lintrainwy    时间: 2017-12-28 05:09
你觉得哪种写法更好?




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3