无忧启动论坛

标题: win7如何以管理员身份运行批处理 [打印本页]

作者: ggmm888    时间: 2010-4-23 08:50
标题: win7如何以管理员身份运行批处理
win7如何以管理员身份运行批处理

批处理含有修改注册表内容

点这个批处理右键以管理员身份运行,一闪而过,但这个批处理没有被运行。但如果以管理员身份运行CMD.exe然后运行命令行(就是说运行批处理中的每步动作)都成功。



今天测试成功,批处理无更改,不知为什么。

[ 本帖最后由 ggmm888 于 2010-4-29 23:18 编辑 ]
作者: lianjiang    时间: 2010-4-23 10:39
注释掉@,加上pause,看看有什么提示。
作者: yjd    时间: 2010-4-23 18:52
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\runas]
  3. @="管理员取得所有权"
  4. "NoWorkingDirectory"=""
  5. [HKEY_CLASSES_ROOT\*\shell\runas\command]
  6. @="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
  7. "IsolatedCommand"="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
  8. [HKEY_CLASSES_ROOT\exefile\shell\runas2]
  9. @="管理员取得所有权"
  10. "NoWorkingDirectory"=""
  11. [HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
  12. @="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
  13. "IsolatedCommand"="cmd.exe /c takeown /f "%1" && icacls "%1" /grant administrators:F"
  14. [HKEY_CLASSES_ROOT\Directory\shell\runas]
  15. @="管理员取得所有权"
  16. "NoWorkingDirectory"=""
  17. [HKEY_CLASSES_ROOT\Directory\shell\runas\command]
  18. @="cmd.exe /c takeown /f "%1" /r /d y && icacls "%1" /grant administrators:F /t"
  19. "IsolatedCommand"="cmd.exe /c takeown /f "%1" /r /d y && icacls "%1" /grant administrators:F /t"
复制代码


把这个导入注册表再用右键选择 管理员取得所有权 运行看看
作者: ggmm888    时间: 2010-4-23 19:50
楼上的两位大侠,多谢了。
现在又测试,批处理中只有单独运行命令行成功。

但是加入这样的判断命令行就不行了
例:
@echo off
mode con:cols=29  lines=1
color 70
title
set /p choose=按Y键清除,按其他键退出:
@rem 给if加个/i开关就能忽略大小写,不必写两句。
if /i "%choose%"=="Y" goto run
exit

例:
@echo off
MODE con: COLS=54 LINES=19
title
:start
cls
echo.
echo.
echo         [1]
echo.
echo         [2]
echo.
echo         [3]
echo.
echo         [4]
echo.
echo         [5]        退出批处理
echo.
set choice=
set /p choice=选择并回车:
if not "%choice%"=="" set choice=%choice:~,1%
echo.
If /I "%Choice%"=="1" Goto ql
If /I "%Choice%"=="2" Goto 2009180
If /I "%Choice%"=="3" Goto 2011180
If /I "%Choice%"=="4" Goto 2011365
If /I "%Choice%"=="5" exit
goto start

加上pause,查看也没有任何提示,一闪而过。

yjd大侠,我个人认为系统本身右键就有“以管理员身份运行”应该和"管理员取得所有权"是一样的,不知有什么区别,请指点一下,多谢。右键以有的命令,如何对应查看注册表中对应值,像运行3楼的reg文件,我就知道右键中的命令是什么,反过来看见右键中的命令,如何找注册表对应值。
作者: yjd    时间: 2010-4-28 12:52
我不是大侠囧
win7我不熟悉现在还在用2k3。那个注册表是上次装win7明明是管理员帐号还提示没权限所以就网上找了这个来使用。具体和你说的默认那个有什么区别这就不清楚了。
有时候我是通过关键字来搜索注册表来找,或者regfromapp来监视某个进程来找到相关键位。
位置是固定应该有很多人知道比如那些diy pe的高手^_^。找这个应该不是难题。

你要看错误信息就要把前面的@echo off去掉。
作者: shishicom    时间: 2010-7-23 18:31
好像有个办法可以解决这个问题,就是在开始菜单-附件-CMD中右键“以管理员的身份运行”
然后再cmd中进入你想要运行Bat的路径,手动运行BAT即可。
作者: jneny    时间: 2011-3-3 22:25
.cmd文件右键菜单 对应的键值是 HKCR\cmdfile\shell\
runas 项就是“以管理员身份运行”,修改 runas下的command,把/c 改成/k 就不会闪掉CMD窗口了。

貌似右键这项点开,就会得到一个管理员身份的CMD,CMD文件里调用的需要 管理员身份的程序也就不会提示了。
作者: dos时代菜鸟    时间: 2011-3-5 08:39
最管用的办法还是 通过 gpedit.msc  设置 administrator 帐户可用,然后切换帐户到 administrator 执行这些脚本。

gpedit.msc---- 计算机配置---windows设置---安全设置---本地策略---安全选项---帐户_管理员帐户状态---启用

切换用户 进入 administrator 以后别忘了 为 administrator 设置一个密码。
作者: 2011lxw    时间: 2011-4-30 10:41
在批处理里面能不能直接改成管理员身份???????
作者: O.Y.M.2010    时间: 2011-4-30 16:13
原帖由 dos时代菜鸟 于 2011-3-5 08:39 发表
最管用的办法还是 通过 gpedit.msc  设置 administrator 帐户可用,然后切换帐户到 administrator 执行这些脚本。

gpedit.msc---- 计算机配置---windows设置---安全设置---本地策略---安全选项---帐户_管理员 ...


许多品牌机中没有 gpedit.msc
作者: 2011渴望无限    时间: 2011-6-26 15:02
标题: 回复 #1 ggmm888 的帖子
批处理文件名不要含有特殊符,如&和^之类的,例如当含有&时,加上pause,直接运行正常,可以停住,但以管理员身份运行就一闪而过,不会停住,批处理命令也没执行。
作者: 2012velino    时间: 2012-11-27 10:51
LZ,这个问题很简单很简单,只要在批处理最前面加一个cd /d %~dp0就可以了
批处理如果使用管理员身份运行的话,那它的工作路径是c:\windows\system32,所以要在前面加个cd /d %~dp0,转到批处理所在路径。
关于%~dp0的含义,cmd里面敲个call /?就清楚了
作者: 2011895866818    时间: 2012-11-27 23:27
浏览量这么多,无语了!!!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3