Board logo

标题: [系统相关] 求助修改批处理代码获取管理员权限 [打印本页]

作者: jp1982    时间: 2016-9-7 16:03     标题: 求助修改批处理代码获取管理员权限

在上网发现有以下这段代码让批处理临时获得管理权限可以运行,但是每次都会弹出窗口要求输入管理员账号和密码,现假如我的管理员账户为tpadmin,密码为123456,怎么修改下面代码后不再弹出窗口要求输入管理员账户和密码!谢谢各位大牛!
::::::::::::::::::::::::::::::::::::::::::::::::::::
::      软媒魔方自动添加批处理文件管理员权限::
::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
ECHO ================================
ECHO 软媒魔方获取批处理文件管理员权限
ECHO ================================
CLS & COLOR 4F
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 请求 UAC 权限批准……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)
作者: wskwfkbdn    时间: 2016-9-7 18:27

关闭UAC用户账户控制即可
作者: jp1982    时间: 2016-9-7 19:22

在上网发现有以下这段代码让批处理临时获得管理权限可以运行,但是每次都会弹出窗口要求输入管理员账号和密 ...
jp1982 发表于 2016-9-7 16:03



    您说的方法不行哟!
作者: wskwfkbdn    时间: 2016-9-7 20:14

我这有个方法可以  不需要提示账号和密码,
作者: wskwfkbdn    时间: 2016-9-7 20:17

@ECHO off&color 3e & cd /d "%~dp0"
title 复制repdos到Windows目录中
%1 %2
ver|find "5.">nul&&goto :START
REM 自动以管理员身份重新运行
START "" mshta.exe vbscript:createobject("shell.application").shellexecute("%~s0","goto :start","","runas",1)(window.close)
goto :eof

:start
COPY /y repdos.exe "%windir%\"
ping /n 3 127.0.1 >NUL
goto :eof
作者: jp1982    时间: 2016-9-8 14:53

@ECHO off&color 3e & cd /d "%~dp0"
title 复制repdos到Windows目录中
%1 %2
ver|find "5.">nul&&goto  ...
wskwfkbdn 发表于 2016-9-7 20:17


首先谢谢您的帮助哦!但是我用过后发现    您这段代码是可关闭弹出输入账号密码的对话框,但是没有办法以管理员权限运行批处理了哦,
作者: wskwfkbdn    时间: 2016-9-8 15:22

可以的呀                    ~
作者: jp1982    时间: 2016-9-9 14:22

可以的呀                    ~
wskwfkbdn 发表于 2016-9-8 15:22



   您好!您运行的账号是user权限吗?我要达到的目的是用户在user权限下,让批处理自身已管理员权限运行哦。。
作者: wskwfkbdn    时间: 2016-9-9 14:26

本帖最后由 wskwfkbdn 于 2016-9-9 14:28 编辑

我就问你提权干嘛,提权一般右键管理员身份运行就可以啦,我这个代码就是这样的功能,自动以管理员身份运行bat自身。
作者: jp1982    时间: 2016-9-9 14:38     标题: 在批处理中运行vb及调用自身(三位文件合成一个文件)

各位大牛帮忙修改附件中的批处理,附件中有三个文件1、win7改ip.bat  2、ad.vbs  3、ip.bat;每次运行时需要把这三个文件放在同一目录下行运行《win7改ip.bat》才能实现《ip.bat》中的功能,现在想实现如下功能:1、把这三个文件合并成一个IP.bat文件;2、在IP.bat中增加把默认输入法设置成英文输入。谢谢!
作者: wskwfkbdn    时间: 2016-9-9 14:58

回复 10# jp1982


    提权的代码没有问题,是你不会用,你要求修改的东西,还是加我QQ谈532523788




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2