让bat批处理以管理员权限运行的实现方法

1、第一种方法

有的电脑是非管理员登录,运行程序时,需要提示是否运行运行。解决方法如下:

@ echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
//在你的bat开头加上上面的命令即可
//下面是你需要执行的命令
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql

2、bat脚本获取管理员权限

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

写在bat文件的顶端就可以实现。

3、bat脚本中以管理员权限执行命令

在bat脚本文件第一行加上下面命令:

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

4、自动以管理员身份运行批处理(bat)文件

在日常运维工作中,为方便对windows用户进行系统安装或配置等,使用Windows自带的批处理(bat文件)是一种最为简单快速的方法。

但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"XXXXXX(请右键点击,用管理员身份运行!).bat",但总有些用户会忽略这条提示,直接运行,此时由于权限不足,导致脚本运行失败。我们可以使用一种变通的方法,让bat启动时,首先调用vbs脚本,通过vbs脚本,以管理员身份调用该bat的 runas 部分

我们的脚本可以写在runas 下,这样就点击该bat脚本,就可以已管理员身份运行了

示例代码如下

@ECHO OFF
setlocal EnableDelayedExpansion
color 3e
title 添加服务配置

PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas

::填写自己的脚本

echo 执行完毕,任意键退出

pause >nul
exit

5、以管理员权限执行bat脚本

只需要在你编写的.bat文件的开头加上以下脚本,然后双击.bat文件即是以管理员权限执行

@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前运行路径是:%CD%
echo 已获取管理员权限

6、如何让BAT和CMD批处理以管理员身份运行

如何让BAT和CMD批处理以管理员身份运行?

有些批处理需要很高的权限执行才能达到我们所需要的效果,

将以下代码放入批处理最顶部就可以实现以管理员身份运行了。

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

7、命令行CMD批处理自动以管理员身份运行的正确方法

修正了路径有空格时的问题

在批处理开头加上:

适用于无参数

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit

适用于一参数

%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit

更多参数的以此类推
运行批处理时多加一个参数::,这句就不会执行
为了兼容8.3短路径,可把%~0等换成%~s0
理论上是没问题,但启动路径有时不可靠,之后可能还要pushdcd /d

8、bat文件以管理员权限运行的几种方式

1、创建bat快捷方式,然后右键快捷方式-->properties-->advanced-->Run as administrator。
2、下载bat转成exe工具,将bat转成exe,然后右键exe-->properties-->Compatibility-->Run as administrator。
3、以管理员权限运行cmd,然后dos框中运行相应的bat。

到此这篇关于让bat批处理以管理员权限运行的实现方法的文章就介绍到这了,更多相关管理员权限运行bat内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 让bat批处理以管理员权限运行的实现方法

    1.第一种方法 有的电脑是非管理员登录,运行程序时,需要提示是否运行运行.解决方法如下: @ echo off %1 %2 ver|find "5.">nul&&goto :Admin mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas&quo

  • Pycharm以root权限运行脚本的方法

    因为权限不够,导致Pycharm在运行脚本时报错: socket.error: [Errno 1] Operation not permitted 网上有一些修改文件使得Pycharm运行脚本时可以不需要密码的以root权限运行. 但是大多操作雷同,估计是复制粘贴的,而且下方有几条评论表示IDE报错. 在跟随他操作到最后时发现无法继续,就干脆用简单粗暴的方式,以sudo启动IDE: sudo ./pycharm.sh 启动后需要手动导入项目与解释器,不然代码无法运行. 导入解释器后即可运行代码

  • C#判断程序是否是管理员权限运行的方法代码示例

    public bool IsAdministrator() { WindowsIdentity current = WindowsIdentity.GetCurrent(); WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current); return windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator); }

  • bat批处理批量修改文件扩展名的方法

    有的时候我们可能会遇到,在一个文件夹内有很多个文件,我们需要修改这些文件的扩展名,当然我们可以一个一个的修改,可是如果有很多文件,那就很麻烦了,所以今天就教大家批量修改文件扩展名的方法,希望大家能够灵活运用. 这里假设你要把扩展名为.gif的文件都改成.jpg格式,那么具体方法如下: 1.首先进入需要改扩展名的文件夹内新建一个记事本 2.在记事本中输入如下内容 复制代码 代码如下: ren *.gif *.jpg 3.将记事本的扩展名改名为.bat 4.双击运行bat文件即可批量将该文件夹下的所

  • dos、bat批处理延时执行命令的两种方法

    来源:vbs小铺 第一种方法: ping 127.0.0.1 -n 5000>nul dir c:\ >c:\1.txt 延时5分钟后执行dir c:\ 第二种方法 :: Sleep.bat - Sleep/Delay/Wait n seconds :: Herbert Kleebauer(Germany) - 2005/05/29 :: Modified by Will Sort - 2005/06/02 @echo off echo q | debug>nul echo Bj@jzh

  • 解决Java调用BAT批处理不弹出cmd窗口的方法分析

    常规调用方式:(这个肯定会弹出cmd窗口) 复制代码 代码如下: Runtime.getRuntime().exec("cmd.exe   /C   start   D:\\test.bat"); 解决不弹框只需要"start"后面加一个参数"/b"就行: 复制代码 代码如下: Runtime.getRuntime().exec("cmd.exe   /C   start   /b   D:\\test.bat"); 复制代码

  • BAT批处理判断目录在%Path%中实现方法

    貌似没有很优美的做法,只能把%Path%按分号分割,然后一段一段地比较. :InPath [In]Path [Out]0/1 SETLOCAL SET LocalPathCopy=%PATH% SET Result=0 :WHILE IF "%LocalPathCopy" == "" GOTO WEND FOR /F "delims=;" %%I IN ("%LocalPathCopy%") DO ( IF /I "

  • windows bat批处理判断电脑服务是否运行的问题

    我用来判断我的mysql是否运行: 代码: set srvname="MySQL57" sc query|find %srvname% && net stop %srvname% && pause || net start %srvname% && pause 结果:当他没运行时: 当他运行时: Bat命令学习-批处理中的&.&&.|.||.>.>>符号& 顺序执行多条命令,而不管命令是否

  • 易语言程序默认以管理员身份运行方法

    由于Win7及以上版本系统的UAC账户控制权限,导致易语言写的很多程序在没有以管理员权限运行的的情况下,无法正常进行一些需要管理员权限的操作,如修改注册表等,那么我们如何在用户启动程序的时候就向系统申请管理员权限,以保证程序能正常使用呢? 1.打开Restorator 2009,通过文件菜单打开要修改的程序test.exe.此时的test.exe没有管理员权限,如图,程序图标上并没有那个标志了管理员权限运行的 小盾牌 图标. 2.在桌面建立名为1.txt的文本文件,并将下面的内容写入后保存.此文

  • 自动以管理员身份运行批处理bat文件(vbs与bat两种方法)

    但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"XXXXXX(请右键点击,用管理员身份运行!).bat",但总有些用户会忽略这条提示,直接运行,此时由于权限不足,导致脚本运行失败. 我们可以使用一种变通的方法,让bat启动时,首先调用vbs脚本,通过vbs脚本,以管理员身份调用该bat的 runas 部分 我们的脚本可以写在runas 下,这样就点击该bat脚本,就可以已管理员身份运行了 示例代码如下 @ECHO OFF setlocal EnableDelay

随机推荐