一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - CMD命令行中以管理員權限啟動應用程序實現方法

CMD命令行中以管理員權限啟動應用程序實現方法

2020-07-04 09:48腳本之家 VBS

這篇文章主要介紹了CMD命令行中以管理員權限啟動應用程序實現方法,本文使用一個JS腳本來實現,需要的朋友可以參考下

很多時候我們需要管理員權限來運行bat那么就需要結合vbscript來實現了

方法一:

?
1
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

常用

?
1
2
3
4
5
@echo off
mode con lines=30 cols=60
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
rem 下面可以寫你的bat代碼了

方法二:

?
1
2
3
4
5
6
@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:

?
1
2
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "E:\demo\batchScript.cmd", "", "", "runas", 1

Run a VBScript with elevated permissions, flag=runas:

?
1
2
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表示含義

~是擴展的意思,相當于把一個相對路徑轉換絕對路徑
%0代指批處理文件自身
%1表示批處理文件命令行接收到的第一個參數,%2表示第二個,以此類推
%~d0 是指批處理所在的盤符,其中d代表drive
%~p0 是指批處理所在的目錄,其中p代表path
%~dp0 是批處理所在的盤符加路徑


cd %~dp0 就是進入批處理所在目錄了


詳細解釋還可參考命令 call /?

自從Vista帶來了UAC之后,應用程序就變成了兩種,有管理員權限的,和沒有管理員權限的。一些老的應用程序會莫名其妙地出錯,這時候就要考慮右擊應用程序,然后“以管理員身份運行”。這還不是什么大問題,exe文件的右鍵菜單里都會有這個,但是對于一些腳本文件(cmd, js一類)來說,就沒那么方便了。通常需要重新開一個帶管理員權限的命令行窗口,然后打很多cd回到剛的文件夾,然后再運行腳本,相當麻煩。

搜了一下,找到一個解決辦法。把下面的代碼保存為Elevate.js:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
var command = WScript.Arguments.Item(0);
var argument = "";
for (var i = 0; i < WScript.Arguments.Count(); ++i){
 argument += WScript.Arguments.Item(i) + " ";
}
 
try{
 var shellapp = new ActiveXObject("Shell.Application");
 shellapp.ShellExecute(command, argument, null, "runas", 1);
}
catch(e){
 WScript.Echo("Something wrong: " + e.description);
}

以后要以管理員身份運行程序的時候,只要輸入“Elevate <exefile> <arguments>”就可以了,比如“Elevate cmd /k”。

當然,這個逃不過UAC的檢查,還是會有一個對話框彈出來要點“確定”的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品啪在线观看国产老湿机 | 日韩欧美三级视频 | 18videossex性欧美69 | 国产精品久久久久一区二区三区 | 国产综合色在线视频区色吧图片 | 韩国三级日本三级香港三级黄 | 色噜噜 男人的天堂在线观看 | 免费视频网| 国产高清免费午夜在线视频 | 日本全黄三级在线观看 | 精品亚洲视频在线观看 | 日本精品一区二区在线播放 | 手机看片1024国产 | 亚洲精品国产一区二区三区在 | 四虎影视在线永久免费观看 | 午夜电影三级还珠格格 | 免费91麻豆精品国产自产在线观看 | 国产日韩欧美在线一区二区三区 | 免费国产成人高清视频网站 | 日韩欧美国产一区二区三区 | 67194在线免费观看 | 99久久免费看国产精品 | 狠狠色综合久久婷婷色天使 | 亚洲va欧美va天堂v国产综合 | 特级夫妻大片免费在线播放 | 久久综合狠狠综合久久综合88 | 韩国禁片在线观看久 | 成人综合久久综合 | 男男gaygays国内 | 男同精品视频免费观看网站 | 男生操女生的漫画 | 大伊香蕉精品视频一区 | 日韩欧美不卡片 | 超级乱淫寡妇 | 色老板在线播放 | 人禽l交免费视频观看+视频 | 男生的j桶女人屁免费视频 男生操男生 | 亚洲AV福利天堂一区二区三 | 国产午夜精品不卡视频 | 亲爱的客栈第二季免费观看完整版 | 双性肉文h|