咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 552|回复: 0

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

[复制链接]
  • TA的每日心情
    无聊
    2019-6-2 14:11
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    发表于 2020-9-15 12:39:42 | 显示全部楼层 |阅读模式
    但是,批处理脚本不会默认已管理员身份运行,一般情况下,我会将脚本命名为"XXXXXX(请右键点击,用管理员身份运行!).bat",但总有些用户会忽略这条提示,直接运行,此时由于权限不足,导致脚本运行失败。
    我们可以使用一种变通的方法,让bat启动时,首先调用vbs脚本,通过vbs脚本,以管理员身份调用该bat的 runas 部分
    我们的脚本可以写在runas 下,这样就点击该bat脚本,就可以已管理员身份运行了
    示例代码如下
    1. @ECHO OFF
    2. setlocal EnableDelayedExpansion
    3. color 3e
    4. title 添加服务配置
    5. PUSHD %~DP0 & cd /d "%~dp0"
    6. %1 %2
    7. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
    8. :runas
    9. ::填写自己的脚本
    10. echo 执行完毕,任意键退出
    11. pause >nul
    12. exit
    复制代码
    VBS使用管理员权限启动BAT2
    1. Set objShell = CreateObject(“WScript.Shell”)
    2. strPath = Replace(WScript.ScriptFullName, 文件名, “”)
    3. objShell.Run("runas /user:administrator " & strPath & “cmd.Bat”)
    4. WScript.Sleep 1000
    5. objShell.SendKeys “password{ENTER}”
    6. WScript.Sleep 1000
    复制代码
    注意:runas是无法传递参数的
    bat脚本中以管理员权限执行命令
    把写好的bat设置为开机启动后,但是默认不是以管理员身份运行,所以开机启动的时候就会导致有一些命令执行不了
    首先:如果windows每次获取管理员权限的时候都会弹窗,那么首先就要把弹窗关闭
    关闭方法是每次弹出提示的时候提示框有一个深色字体,提示可以修改弹出设置,点进去,设置为永不或者无弹窗
    接下来,只需要在.bat脚本中添加一下代码 即可实现 以管理员身份运行
    在bat脚本文件第一行加上下面命令:
    ::强制获取管理员运行权限
    1. %1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
    复制代码
    cmd/bat如何自动请求管理员权限而不需要右键管理员运行
    先上完整代码:
    1. @echo off
    2. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    3. if '%errorlevel%' NEQ '0' (
    4. echo 请求管理员权限...
    5. goto UACPrompt
    6. ) else ( goto gotAdmin )
    7. :UACPrompt
    8. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    9. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    10. "%temp%\getadmin.vbs"
    11. exit /B
    12. :gotAdmin
    复制代码
    原理如下:
    访问一个需要授权的文件夹,如(%SYSTEMROOT%\system32\config\system)
    如果被允许了,说明显然有管理员权限
    如果被拒绝了,就要申请权限了。
    申请权限的方法是:
    (看echo的代码)
    创建一个运行器,运行相对目录(相对目录就是运行批处理的目录)里面的程序,以管理员权限。
    然后自然就申请管理员了哇到此这篇关于vbs之自动以管理员身份运行批处理(bat)文件的文章就介绍到这了,更多相关管理员身份运行批处理内容请搜索咔叽论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持咔叽论坛!

    原文地址:https://www.jb51.net/article/193691.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-19 11:02

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表