很多時(shí)候我們需要管理員權(quán)限來運(yùn)行bat那么就需要結(jié)合vbscript來實(shí)現(xiàn)了
方法一:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit |
常用
@echo offmode con lines=30 cols=60%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exitcd /d "%~dp0"rem 下面可以寫你的bat代碼了 |
方法二:
@echo off %1 %2 ver|find "5.">nul&&goto :st mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof :st copy "%~0" "%windir%/system32/" |
原理類似
ShellExecute method
Run a script or application in the Windows Shell.
Syntax
.ShellExecute "application", "parameters", "dir", "verb", window
.ShellExecute 'some program.exe', '"some parameters with spaces"', , "runas", 1
Key
application The file to execute (required)
parameters Arguments for the executable
dir Working directory
verb The operation to execute (runas/open/edit/print)
window View mode application window (normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)
Note the different (double " and single ' ) quotes that can be used to delimit paths with spaces.
The runas verb is undocumented but can be used to elevate permissions. When a script is run with elevated permissions several aspects of the user environment may change: The current directory, the current TEMP folder and any mapped drives will be disconnected.
runas will fail if you are running in WOW64 (a 32 bit process on 64 bit windows) for example %systemroot%/syswow64/cmd.exe ...
The ShellExecute method is a member of the IShellDispatch2 object.
Examples
Run a batch script with elevated permissions, flag=runas:
Set objShell = CreateObject("Shell.Application")objShell.ShellExecute "E:/demo/batchScript.cmd", "", "", "runas", 1 |
Run a VBScript with elevated permissions, flag=runas:
Set objShell = CreateObject("Shell.Application")objShell.ShellExecute "cscript", "E:/demo/vbscript.vbs", "", "runas", 1 |
“If you don't execute your ideas, they die” ~ Roger Von Oech
Related:
Run with elevated permissions - Script to run as Admin
.Exec - Execute command, returning an object
.Run - Run a command
joeware.net - CPAU (Create Process As User) like RunAs but with an options to encrypt the password.
Equivalent CMD command: ShellRunAs - Run a command under a different user account
批處理文件中的%~dp0表示含義
~是擴(kuò)展的意思,相當(dāng)于把一個(gè)相對(duì)路徑轉(zhuǎn)換絕對(duì)路徑
%0代指批處理文件自身
%1表示批處理文件命令行接收到的第一個(gè)參數(shù),%2表示第二個(gè),以此類推
新聞熱點(diǎn)
疑難解答