首頁 > 軟體

Win10讓批次檔自動獲取管理員許可權的方法

2020-07-23 10:28:24

  在Win10系統下進行批次檔時,你會發現很多批次檔在執行時都會提示需要管理員許可權,這時你就要手動設定以管理員身份執行才能進行操作,這樣的半自動化操作實在太煩人了。如果我們能為批次檔自動新增管理員許可權,是不是就快多了?因為這樣的話,我們雙擊執行就可以直接進行操作了。那麼,在Win10系統下要如何讓批次檔自動新增管理員許可權呢?

  步驟如下:

  想要給批次檔自動新增管理員許可權並不難,只要使用小編提供的程式碼就可以輕鬆實現自動獲取許可權的功能。把如下程式碼複製到記事本中,並儲存為 .bat 格式即可(檔名可自擬);

 

  1. 01:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. 02:: 軟媒魔方自動新增批次檔管理員許可權 ::
  3. 03:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. 04@echo off
  5. 05CLS
  6. 06ECHO.
  7. 07ECHO ================================
  8. 08ECHO 軟媒魔方獲取批次檔管理員許可權
  9. 09ECHO ================================
  10. 10:init
  11. 11setlocal DisableDelayedExpansion
  12. 12set "batchPath=%~0"
  13. 13for %%k in (%0) do set batchName=%%~nk
  14. 14set "vbsGetPrivileges=%temp%OEgetPriv_%batchName%.vbs"
  15. 15setlocal EnableDelayedExpansion
  16. 16:checkPrivileges
  17. 17NET FILE 1>NUL 2>NUL
  18. 18if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
  19. 19:getPrivileges
  20. 20if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
  21. 21ECHO.
  22. 22ECHO ********************************
  23. 23ECHO 請求 UAC 許可權批准……
  24. 24ECHO ********************************
  25. 25ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
  26. 26ECHO args = "ELEV " >> "%vbsGetPrivileges%"
  27. 27ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
  28. 28ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
  29. 29ECHO Next >> "%vbsGetPrivileges%"
  30. 30ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
  31. 31"%SystemRoot%System32WScript.exe" "%vbsGetPrivileges%" %*
  32. 32exit /B
  33. 33:gotPrivileges
  34. 34setlocal & pushd .
  35. 35cd /d %~dp0
  36. 36if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
  37. 37:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  38. 38:: 以下為需要執行的批次檔程式碼 ::
  39. 39:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  40. 40rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改)
  41. 41ECHO 歡迎使用軟媒魔方!
  42. 42ECHO.
  43. 43pause
複製程式碼
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: 軟媒魔方自動新增批次檔管理員許可權 :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ================================ ECHO 軟媒魔方獲取批次檔管理員許可權 ECHO ================================ :init setlocal DisableDelayedExpansion set "batchPath=%~0" for %%k in (%0) do set batchName=%%~nk set "vbsGetPrivileges=%temp%OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) :getPrivileges if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ******************************** ECHO 請求 UAC 許可權批准…… ECHO ******************************** ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Next >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%System32WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges setlocal & pushd . cd /d %~dp0 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: 以下為需要執行的批次檔程式碼 :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改) ECHO 歡迎使用軟媒魔方! ECHO. pause

IT145.com E-mail:sddin#qq.com