admin.vbs 以管理員身份運行程序的vbs命令
2020-06-09 13:51:57
供稿:網友
代碼如下:
'以管理員身份運行程序的命令admin.vbs
Set objWMIServices = GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/cimv2")
Set objWbemObjectSet = objWMIServices.ExecQuery(_
"SELECT * FROM Win32_Process WHERE " &_
"ExecutablePath='" & Replace(WScript.FullName,"/","http://") & "' and " & _
"CommandLine LIKE '%" & WScript.ScriptName & "%'")
for each objWbemObject in objWbemObjectSet
cmdline = objWbemObject.CommandLine
next
if WScript.Arguments.Count then
file = WScript.Arguments(0)
if file="/?" then
call ShowHelp()
WScript.Quit
end if
Set RegEx = new RegExp
RegEx.IgnoreCase = true
RegEx.Global = true
RegEx.Pattern = "http://|//|/||/(|/)|/[|/]|/{|/}|/^|/$|/.|/*|/?|/+"
temp1 = RegEx.Replace(WScript.ScriptName, "/$&")
temp2 = RegEx.Replace(file, "/$&")
RegEx.Global = false
RegEx.Pattern = "^.*?" & temp1 & "[""/s]*" & temp2 & """?/s*"
args = RegEx.Replace(cmdline, "")
'WScript.Echo file, args
else
file = "cmd.exe"
'args = "/k cd /d """ & CreateObject("WScript.Shell").CurrentDirectory & Chr(34)
end if
'核心代碼
Set sh = CreateObject("Shell.Application")
call sh.ShellExecute( file, args, , "runas" )
function ShowHelp()
dim HelpStr
HelpStr = "以管理員身份運行程序。" & vbCrLf _
& vbCrLf _
& WScript.ScriptName & " [program] [parameters]..." & vbCrLf _
& vbCrLf _
& "program 要運行的程序" & vbCrLf _
& "parameters 傳遞給 program 的參數" & vbCrLf _
& vbCrLf
WScript.Echo HelpStr
end function
建議放到%SystemRoot%/system32目錄下,對喜歡玩cmd而且操作系統是win7的人有點用處。
偶爾用到某些命令(如reg.exe)需要管理員權限,直接在cmd中 admin reg add ... 即可。