找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24825|回复: 10

[系统相关] 求助修改批处理代码获取管理员权限

[复制链接]
发表于 2016-9-7 16:03:48 | 显示全部楼层 |阅读模式
在上网发现有以下这段代码让批处理临时获得管理权限可以运行,但是每次都会弹出窗口要求输入管理员账号和密码,现假如我的管理员账户为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)

评分

参与人数 1PB -2 收起 理由
pcl_test -2 未按版规发帖

查看全部评分

发表于 2016-9-7 18:27:54 | 显示全部楼层
关闭UAC用户账户控制即可
 楼主| 发表于 2016-9-7 19:22:40 | 显示全部楼层
在上网发现有以下这段代码让批处理临时获得管理权限可以运行,但是每次都会弹出窗口要求输入管理员账号和密 ...
jp1982 发表于 2016-9-7 16:03



    您说的方法不行哟!
发表于 2016-9-7 20:14:49 | 显示全部楼层
我这有个方法可以  不需要提示账号和密码,
发表于 2016-9-7 20:17:12 | 显示全部楼层
@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
 楼主| 发表于 2016-9-8 14:53:16 | 显示全部楼层
@ECHO off&color 3e & cd /d "%~dp0"
title 复制repdos到Windows目录中
%1 %2
ver|find "5.">nul&&goto  ...
wskwfkbdn 发表于 2016-9-7 20:17


首先谢谢您的帮助哦!但是我用过后发现    您这段代码是可关闭弹出输入账号密码的对话框,但是没有办法以管理员权限运行批处理了哦,
发表于 2016-9-8 15:22:44 | 显示全部楼层
可以的呀                    ~
 楼主| 发表于 2016-9-9 14:22:20 | 显示全部楼层
可以的呀                    ~
wskwfkbdn 发表于 2016-9-8 15:22



   您好!您运行的账号是user权限吗?我要达到的目的是用户在user权限下,让批处理自身已管理员权限运行哦。。
发表于 2016-9-9 14:26:14 | 显示全部楼层
本帖最后由 wskwfkbdn 于 2016-9-9 14:28 编辑

我就问你提权干嘛,提权一般右键管理员身份运行就可以啦,我这个代码就是这样的功能,自动以管理员身份运行bat自身。
 楼主| 发表于 2016-9-9 14:38:22 | 显示全部楼层

在批处理中运行vb及调用自身(三位文件合成一个文件)

各位大牛帮忙修改附件中的批处理,附件中有三个文件1、win7改ip.bat  2、ad.vbs  3、ip.bat;每次运行时需要把这三个文件放在同一目录下行运行《win7改ip.bat》才能实现《ip.bat》中的功能,现在想实现如下功能:1、把这三个文件合并成一个IP.bat文件;2、在IP.bat中增加把默认输入法设置成英文输入。谢谢!
发表于 2016-9-9 14:58:39 | 显示全部楼层
回复 10# jp1982


    提权的代码没有问题,是你不会用,你要求修改的东西,还是加我QQ谈532523788
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:26 , Processed in 0.020173 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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