欢迎来到代码驿站!

当前位置:首页 >

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

时间:2020-08-19 23:00:07|栏目:|点击:

但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"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

VBS使用管理员权限启动BAT2

Set objShell = CreateObject(“WScript.Shell”)
strPath = Replace(WScript.ScriptFullName, 文件名, “”)
objShell.Run("runas /user:administrator " & strPath & “cmd.Bat”)
WScript.Sleep 1000
objShell.SendKeys “password{ENTER}”
WScript.Sleep 1000

注意:runas是无法传递参数的

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

把写好的bat设置为开机启动后,但是默认不是以管理员身份运行,所以开机启动的时候就会导致有一些命令执行不了

首先:如果windows每次获取管理员权限的时候都会弹窗,那么首先就要把弹窗关闭

关闭方法是每次弹出提示的时候提示框有一个深色字体,提示可以修改弹出设置,点进去,设置为永不或者无弹窗

接下来,只需要在.bat脚本中添加一下代码 即可实现 以管理员身份运行

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

::强制获取管理员运行权限

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

cmd/bat如何自动请求管理员权限而不需要右键管理员运行

先上完整代码:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
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

原理如下:

访问一个需要授权的文件夹,如(%SYSTEMROOT%\system32\config\system)

如果被允许了,说明显然有管理员权限

如果被拒绝了,就要申请权限了。

申请权限的方法是:

(看echo的代码)

创建一个运行器,运行相对目录(相对目录就是运行批处理的目录)里面的程序,以管理员权限。

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

栏    目:

下一篇:R语言ggplot2边框背景去除的实现

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

本文地址:http://www.codeinn.net/misctech/3809.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有