批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[原创] 以管理员身份运行程序的命令admin.vbs

  1. '以管理员身份运行程序的命令admin.vbs
  2. Set objWMIServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  3. Set  objWbemObjectSet = objWMIServices.ExecQuery(_
  4.     "SELECT * FROM Win32_Process WHERE " &_
  5.     "ExecutablePath='" & Replace(WScript.FullName,"\","\\") & "' and " & _
  6.     "CommandLine LIKE '%" & WScript.ScriptName & "%'")
  7. for each objWbemObject in objWbemObjectSet
  8.     cmdline = objWbemObject.CommandLine
  9. next
  10. if WScript.Arguments.Count then
  11.     file = WScript.Arguments(0)
  12.     if file="/?" then
  13.         call ShowHelp()
  14.         WScript.Quit
  15.     end if
  16.     Set RegEx = new RegExp
  17.     RegEx.IgnoreCase = true
  18.     RegEx.Global = true
  19.     RegEx.Pattern = "\\|\/|\||\(|\)|\[|\]|\{|\}|\^|\$|\.|\*|\?|\+"
  20.     temp1 = RegEx.Replace(WScript.ScriptName, "\$&")
  21.     temp2 = RegEx.Replace(file, "\$&")
  22.     RegEx.Global = false
  23.     RegEx.Pattern = "^.*?" & temp1 & "[""\s]*" & temp2 & """?\s*"
  24.     args = RegEx.Replace(cmdline, "")
  25.     'WScript.Echo file, args
  26. else
  27.     file = "cmd.exe"
  28.     'args = "/k cd /d """ & CreateObject("WScript.Shell").CurrentDirectory & Chr(34)
  29. end if
  30. '核心代码
  31. Set sh = CreateObject("Shell.Application")
  32. call sh.ShellExecute( file, args, , "runas" )
  33. function ShowHelp()
  34.   dim HelpStr
  35.   HelpStr = "以管理员身份运行程序。" & vbCrLf _
  36.     & vbCrLf _
  37.     & WScript.ScriptName & " [program] [parameters]..." & vbCrLf _
  38.     & vbCrLf _
  39.     & "program    要运行的程序" & vbCrLf _
  40.     & "parameters 传递给 program 的参数" & vbCrLf _
  41.     & vbCrLf
  42.   WScript.Echo HelpStr
  43. end function
复制代码
建议放到%SystemRoot%\system32目录下,对喜欢玩cmd而且操作系统是win7的人有点用处。
偶尔用到某些命令(如reg.exe)需要管理员权限,直接在cmd中 admin reg add ... 即可。

支持,刚装WIN7,不习惯!
http://www.diecasting86.com

TOP

怎样以system权限运行一个脚本呢?

TOP

回复 1# powerbat


    你好,请问,在此环境下调用START.bat应该插入什么代码?

TOP

'在系统为Win7或Vista时提升VBS脚本权限
Sub DoUACRunScript()
       
        Dim objOS
        For Each objOS in GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
                If InStr(objOS.Caption,"XP") = 0 Then
                        If WScript.Arguments.length = 0 Then
                                Dim objShell
                                Set objShell = CreateObject("Shell.Application")
                                objShell.ShellExecute "wscript.exe", Chr(34) &_
                                WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
                        End If
                End If
        Next
       
End Sub

QQ 20147578

TOP

返回列表