很多时候我们需要管理员权限来运行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.">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表示含义

~是扩展的意思,相当于把一个相对路径转换绝对路径

%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 ”就可以了,比如“Elevate cmd /k”。

当然,这个逃不过UAC的检查,还是会有一个对话框弹出来要点“确定”的。

cmd传入命令行打开程序_CMD命令行中以管理员权限启动应用程序实现方法相关推荐

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

    这篇文章主要介绍了CMD命令行中以管理员权限启动应用程序实现方法,本文使用一个JS脚本来实现,需要的朋友可以参考下 很多时候我们需要管理员权限来运行bat那么就需要结合vbscript来实现了 方法一 ...

  2. python无法启动此程序、因为计算机中丢失_无法启动此程序,因为计算机中丢失*.DLL...

    有时候机子启动会出现:无法启动此程序,因为计算机中丢失EXPLORERFRAME.DLL,这个问题是系统中的这个文件被破坏了,重新拷一个进去就可了. 工具/原料 U盘启动盘 方法/步骤 1 用U盘启动 ...

  3. 在Winform程序中设置管理员权限及为用户组添加写入权限

    在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行程序具有管理员权限或者设置运行程序的目录具有写入的权限,如果是在操作系统里面,我们可以设置运行程序以管理员身 ...

  4. (转)在Winform程序中设置管理员权限及为用户组添加写入权限

    本文转载自:http://www.cnblogs.com/wuhuacong/p/5645172.html 在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行 ...

  5. Linux终端文件夹管理员,如何在Ubuntu 18.04中以管理员权限打开文件和文件夹

    本文向你介绍在Ubuntu 18.04中以管理员权限打开文件和文件夹. 与 Windows 中的资源管理器一样,在 Ubuntu 系统的 Nautilus 文件管理器中,您也可以查看到系统中的所有文件 ...

  6. Win10系统 默认以管理员权限运行所有程序

    WIN10中发现如ahk和目标程序不都是管理员权限,或不全是非管理员权限运行会有各种问题,遂找解决办法.以下文章来自网络,亲侧好用. 非原创,用的是网址 win10如何默认所有软件以管理员身份运行-系 ...

  7. 安装天翼掌上大学,显示用户权限不足,请使用管理员权限执行安装程序!安装退出。

    安装天翼掌上大学,显示用户权限不足,请使用管理员权限执行安装程序!安装退出. 刚下载完掌上大学后,很多小伙伴会发现无法安装,显示用户权限不足,要用管理员权限. 解决方法: 只要把下载好的文件拖到桌面上 ...

  8. 【批处理DOS-CMD命令-汇总和小结】-更改用户权限启动应用程序(runas)临时以管理员身份打开cmd窗口

    一.runas命令有什么用?帮助信息 执行[runas /?],显示帮助信息. C:\WINDOWS\system32>runas /? RUNAS 用法:RUNAS [ [/noprofile ...

  9. 【Linux】Linux常用命令--文件打开、创建、移动、用户管理权限等相关命令

    目录 一.关于Linux文件目录 二.Linux常用命令 1.文件的打开显示命令 1.1 ls命令 1.2 cd命令 1.3 vim命令 2.文件夹的创建/删除/移动命令 2.1创建 2.2删除 2. ...

最新文章

  1. Java多线程之线程间协作 notify与wait的使用
  2. Patent Writing and cultivation of innovation thinking
  3. javascript精要(1)-script元素
  4. linux某个目录环境变量,在linux下加环境变量或者是把某个目录加到环境变量
  5. day3-文件操作之基本操作
  6. Groovy在Spring中的简单使用实例
  7. 动态规划:树形DP-景点中心(树的带权重心)
  8. LeetCode 560. 和为K的子数组(前缀和差分)
  9. 项目任务管理工具Project Office for mac
  10. 作为IT男必须会Linux服务器被攻击后如何处理!网友:这个要会!
  11. word文档无法另存为/导出pdf解决办法
  12. 终端的乐趣--Linux下有趣的终端命令或者工具
  13. 2019最新《后盾网向军0基础学PHP教程》
  14. java ocr引擎_java 实现 OCR 图片文字识别
  15. canvas制作简单表格
  16. 多传感器融合track fusion
  17. 【Qt】断言Q_ASSERT的使用
  18. 人一般长到几岁才会停止长高?
  19. ENVI基于训练样本的决策树地块分类
  20. 计算机信息技术专业学什么,电子与信息技术专业主要学什么

热门文章

  1. 集成灶公认10大品牌有哪些?从这三方面轻松辨别品牌是否靠谱
  2. mouseover和onmouseover
  3. Mac virtualbox 共享文件夹
  4. 剑与契约电脑版怎么下载?如何在电脑上玩剑与契约?
  5. JavaScript 粘贴事件 paste
  6. 监听软键盘,点击确定让其消失
  7. HTML培训心得体会五篇(合集)
  8. React.forwardRef的使用说明
  9. 网页中嵌入视频播放器
  10. matlab mean nan,为什么Matlab运行的结果是NaN呢,急盼解答