Android 台灣中文網

標題: 100%成功 Bat自動要求系統管理員權限 [打印本頁]

作者: yoyokuo2007    時間: 2019-3-9 19:49
標題: 100%成功 Bat自動要求系統管理員權限
把這些複製到你要的bat


@echo off
CLS

: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 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)

::::::::::::::::::::::::::::
::START
::::::::::::::::::::::::::::



再加上你要的命令


作者: jonher    時間: 2019-3-17 21:41


好像不錯~ 感謝提供教學 資訊 ~
記下  改天再來試試!!


需要 VBS 嗎?還是系統內就有這 支 VBS 了

作者: 茼隱月子    時間: 2020-4-18 21:46
好像不錯用!自己寫軟體,每次都要按右鍵,系統管理員開啟有時候忘記了就要重來
作者: chun_hig    時間: 2020-4-30 14:45
感謝提供教學 資訊, 不錯的軟體
作者: tomboliu    時間: 2021-3-19 22:00
批次檔產生一個 隨機的 vbs (VBScript) 程式,然後呼叫執行 vbs 程式,VBScript 程式再以"使用管理者身分執行 runas 批次檔
作者: rogerup    時間: 2021-7-11 04:54
請問這可以直接用嗎@@因為不太會改寫~~C曹用了好多方法一直不給改><   謝~
作者: lag8772    時間: 2022-2-26 13:22
用批次檔執行命令是最直接且最快速的方法!讚!感謝熱心提供!
作者: arer.tw    時間: 2022-5-9 15:59
請問一下,已經將上面的碼,存成BAT檔
執行後,如何確認已經成功了呢??
作者: kgo-1218    時間: 2022-5-11 09:43
請求給個完整教學
拜託
作者: tomboliu    時間: 2023-10-5 14:30
我個人會比較建議使用 Powershell,執行以下命令
Start-Process "你要執行的程式路徑檔名" -Verb runAs -ArgumentList "要給你的執行程式的參數"
這樣 Powershell 就會以系統管理員身分執行你指定的程式
作者: coolcafe    時間: 2024-3-26 22:01
本帖最後由 coolcafe 於 2024-3-26 22:04 編輯

網路爬文搜尋到更簡短的語法

  1. PUSHD %~DP0 & cd /d "%~dp0"
  2. %1 %2
  3. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
  4. :runas
複製代碼
將上述內容加在批次檔的最前面

作者: xxyyzz001    時間: 2024-3-30 09:53
coolcafe 發表於 2024-3-26 22:01
網路爬文搜尋到更簡短的語法
將上述內容加在批次檔的最前面

這個可用 , 不用在按右鍵 用系統管理員執行了~




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1