您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何自動以管理員身份運行批處理bat文件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
但是,批處理腳本不會默認已管理員身份運行,一般情況下,我會將腳本命名為"XXXXXX(請右鍵點擊,用管理員身份運行!).bat",但總有些用戶會忽略這條提示,直接運行,此時由于權限不足,導致腳本運行失敗。
我們可以使用一種變通的方法,讓bat啟動時,首先調用vbs腳本,通過vbs腳本,以管理員身份調用該bat的 runas 部分
我們的腳本可以寫在runas 下,這樣就點擊該bat腳本,就可以已管理員身份運行了
示例代碼如下
@ECHO OFF setlocal EnableDelayedExpansion color 3e title 添加服務配置 PUSHD %~DP0 & cd /d "%~dp0" %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas ::填寫自己的腳本 echo 執行完畢,任意鍵退出 pause >nul exit
VBS使用管理員權限啟動BAT2
Set objShell = CreateObject(“WScript.Shell”) strPath = Replace(WScript.ScriptFullName, 文件名, “”) objShell.Run("runas /user:administrator " & strPath & “cmd.Bat”) WScript.Sleep 1000 objShell.SendKeys “password{ENTER}” WScript.Sleep 1000
注意:runas是無法傳遞參數的
bat腳本中以管理員權限執行命令
把寫好的bat設置為開機啟動后,但是默認不是以管理員身份運行,所以開機啟動的時候就會導致有一些命令執行不了
首先:如果windows每次獲取管理員權限的時候都會彈窗,那么首先就要把彈窗關閉
關閉方法是每次彈出提示的時候提示框有一個深色字體,提示可以修改彈出設置,點進去,設置為永不或者無彈窗
接下來,只需要在.bat腳本中添加一下代碼 即可實現 以管理員身份運行
在bat腳本文件第一行加上下面命令:
::強制獲取管理員運行權限
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
cmd/bat如何自動請求管理員權限而不需要右鍵管理員運行
先上完整代碼:
@echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( echo 請求管理員權限... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin
原理如下:
訪問一個需要授權的文件夾,如(%SYSTEMROOT%\system32\config\system)
如果被允許了,說明顯然有管理員權限
如果被拒絕了,就要申請權限了。
申請權限的方法是:
(看echo的代碼)
創建一個運行器,運行相對目錄(相對目錄就是運行批處理的目錄)里面的程序,以管理員權限。
然后自然就申請管理員了。
感謝各位的閱讀!關于“如何自動以管理員身份運行批處理bat文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。