自動(dòng)以管理員身份運(yùn)行批處理bat文件(vbs與bat兩種方法)
但是,批處理腳本不會(huì)默認(rèn)已管理員身份運(yùn)行,一般情況下,我會(huì)將腳本命名為"XXXXXX(請(qǐng)右鍵點(diǎn)擊,用管理員身份運(yùn)行!).bat",但總有些用戶會(huì)忽略這條提示,直接運(yùn)行,此時(shí)由于權(quán)限不足,導(dǎo)致腳本運(yùn)行失敗。
我們可以使用一種變通的方法,讓bat啟動(dòng)時(shí),首先調(diào)用vbs腳本,通過(guò)vbs腳本,以管理員身份調(diào)用該bat的 runas 部分
我們的腳本可以寫在runas 下,這樣就點(diǎn)擊該bat腳本,就可以已管理員身份運(yùn)行了
示例代碼如下
@ECHO OFF setlocal EnableDelayedExpansion color 3e title 添加服務(wù)配置 PUSHD %~DP0 & cd /d "%~dp0" %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas ::填寫自己的腳本 echo 執(zhí)行完畢,任意鍵退出 pause >nul exit
VBS使用管理員權(quán)限啟動(dòng)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是無(wú)法傳遞參數(shù)的
bat腳本中以管理員權(quán)限執(zhí)行命令
把寫好的bat設(shè)置為開機(jī)啟動(dòng)后,但是默認(rèn)不是以管理員身份運(yùn)行,所以開機(jī)啟動(dòng)的時(shí)候就會(huì)導(dǎo)致有一些命令執(zhí)行不了
首先:如果windows每次獲取管理員權(quán)限的時(shí)候都會(huì)彈窗,那么首先就要把彈窗關(guān)閉
關(guān)閉方法是每次彈出提示的時(shí)候提示框有一個(gè)深色字體,提示可以修改彈出設(shè)置,點(diǎn)進(jìn)去,設(shè)置為永不或者無(wú)彈窗
接下來(lái),只需要在.bat腳本中添加一下代碼 即可實(shí)現(xiàn) 以管理員身份運(yùn)行
在bat腳本文件第一行加上下面命令:
::強(qiáng)制獲取管理員運(yùn)行權(quán)限
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
cmd/bat如何自動(dòng)請(qǐng)求管理員權(quán)限而不需要右鍵管理員運(yùn)行
先上完整代碼:
@echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( echo 請(qǐng)求管理員權(quán)限... 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
原理如下:
訪問(wèn)一個(gè)需要授權(quán)的文件夾,如(%SYSTEMROOT%\system32\config\system)
如果被允許了,說(shuō)明顯然有管理員權(quán)限
如果被拒絕了,就要申請(qǐng)權(quán)限了。
申請(qǐng)權(quán)限的方法是:
(看echo的代碼)
創(chuàng)建一個(gè)運(yùn)行器,運(yùn)行相對(duì)目錄(相對(duì)目錄就是運(yùn)行批處理的目錄)里面的程序,以管理員權(quán)限。
然后自然就申請(qǐng)管理員了哇到此這篇關(guān)于vbs之自動(dòng)以管理員身份運(yùn)行批處理(bat)文件的文章就介紹到這了,更多相關(guān)管理員身份運(yùn)行批處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)
用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)...2007-04-04用VBScript實(shí)現(xiàn)壓縮目錄中的所有文件(Zip)
下面的腳本主要是將制定目錄中得文件,單個(gè)壓縮為zip格式的文件,需要的朋友可以參考下2012-01-01使用 Iisftp.vbs 啟動(dòng)FTP站點(diǎn)的方法
這篇文章主要介紹了使用 Iisftp.vbs 啟動(dòng)FTP站點(diǎn)的方法,需要的朋友可以參考下2014-07-07使用 Iisftp.vbs 列出FTP站點(diǎn)的方法
這篇文章主要介紹了使用 Iisftp.vbs 列出FTP站點(diǎn)的方法,需要的朋友可以參考下2014-07-07