2021-05-12 14:32:11
Win10讓批次檔自動獲取管理員許可權的方法
2020-07-23 10:28:24
在Win10系統下進行批次檔時,你會發現很多批次檔在執行時都會提示需要管理員許可權,這時你就要手動設定以管理員身份執行才能進行操作,這樣的半自動化操作實在太煩人了。如果我們能為批次檔自動新增管理員許可權,是不是就快多了?因為這樣的話,我們雙擊執行就可以直接進行操作了。那麼,在Win10系統下要如何讓批次檔自動新增管理員許可權呢?
步驟如下:
想要給批次檔自動新增管理員許可權並不難,只要使用小編提供的程式碼就可以輕鬆實現自動獲取許可權的功能。把如下程式碼複製到記事本中,並儲存為 .bat 格式即可(檔名可自擬);
- 01:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 02:: 軟媒魔方自動新增批次檔管理員許可權 ::
- 03:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 04@echo off
- 05CLS
- 06ECHO.
- 07ECHO ================================
- 08ECHO 軟媒魔方獲取批次檔管理員許可權
- 09ECHO ================================
- 10:init
- 11setlocal DisableDelayedExpansion
- 12set "batchPath=%~0"
- 13for %%k in (%0) do set batchName=%%~nk
- 14set "vbsGetPrivileges=%temp%OEgetPriv_%batchName%.vbs"
- 15setlocal EnableDelayedExpansion
- 16:checkPrivileges
- 17NET FILE 1>NUL 2>NUL
- 18if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
- 19:getPrivileges
- 20if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
- 21ECHO.
- 22ECHO ********************************
- 23ECHO 請求 UAC 許可權批准……
- 24ECHO ********************************
- 25ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
- 26ECHO args = "ELEV " >> "%vbsGetPrivileges%"
- 27ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
- 28ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
- 29ECHO Next >> "%vbsGetPrivileges%"
- 30ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
- 31"%SystemRoot%System32WScript.exe" "%vbsGetPrivileges%" %*
- 32exit /B
- 33:gotPrivileges
- 34setlocal & pushd .
- 35cd /d %~dp0
- 36if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
- 37:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 38:: 以下為需要執行的批次檔程式碼 ::
- 39:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 40rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改)
- 41ECHO 歡迎使用軟媒魔方!
- 42ECHO.
- 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
相關文章