主页 > 知识库 > CMD命令行中以管理员权限启动应用程序实现方法

CMD命令行中以管理员权限启动应用程序实现方法

热门标签:智能打电话机器人收费 雷霆电销机器人怎么样 如何弄地图标注 电话机器人产品怎么样 呼伦贝尔外呼系统 清远百度地图标注店铺位置 电话机器人全国招商 如何申请400电话业务mm 玉林市机器人外呼系统哪家好

很多时候我们需要管理员权限来运行bat那么就需要结合vbscript来实现了

方法一:

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

常用

@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代码了

方法二:

@echo off 
%1 %2 
ver|find "5.">nulgoto :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表示含义

~是扩展的意思,相当于把一个相对路径转换绝对路径
%0代指批处理文件自身
%1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推
%~d0 是指批处理所在的盘符,其中d代表drive
%~p0 是指批处理所在的目录,其中p代表path
%~dp0 是批处理所在的盘符加路径


cd %~dp0 就是进入批处理所在目录了


详细解释还可参考命令 call /?

自从Vista带来了UAC之后,应用程序就变成了两种,有管理员权限的,和没有管理员权限的。一些老的应用程序会莫名其妙地出错,这时候就要考虑右击应用程序,然后“以管理员身份运行”。这还不是什么大问题,exe文件的右键菜单里都会有这个,但是对于一些脚本文件(cmd, js一类)来说,就没那么方便了。通常需要重新开一个带管理员权限的命令行窗口,然后打很多cd回到刚的文件夹,然后再运行脚本,相当麻烦。

搜了一下,找到一个解决办法。把下面的代码保存为Elevate.js:

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的检查,还是会有一个对话框弹出来要点“确定”的。

您可能感兴趣的文章:
  • JSP 2.1和JSF 1.2规范发布预览版本
  • js 编写规范
  • JSDoc 介绍使用规范JsDoc的使用介绍
  • Javascript模块化编程(一)AMD规范(规范使用模块)
  • Java Web项目前端规范(采用命名空间使js深度解耦合)
  • AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
  • Node.js编码规范
  • PowerShell中使用Get-Alias命令获取cmdlet别名例子
  • C#调用CMD命令实例
  • Windows Powershell 命令集 cmdlets
  • PHP中执行cmd命令的方法
  • PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
  • java执行windows下cmd命令的方法
  • bat/cmd批处理连接SqlServer数据库查询脚本
  • Python使用CMD模块更优雅的运行脚本
  • C#隐式运行CMD命令(隐藏命令窗口)
  • JavaScript模块规范之AMD规范和CMD规范

标签:台州 芜湖 江西 株洲 乐山 公主岭 白银 三门峡

巨人网络通讯声明:本文标题《CMD命令行中以管理员权限启动应用程序实现方法》,本文关键词  CMD,命令,行中,以,管理员,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《CMD命令行中以管理员权限启动应用程序实现方法》相关的同类信息!
  • 本页收集关于CMD命令行中以管理员权限启动应用程序实现方法的相关信息资讯供网民参考!
  • 推荐文章