中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:如何判断批处理文件本身是否以管理员权限运行?
作者:
标题: 请教:如何判断批处理文件本身是否以管理员权限运行? 上一主题 | 下一主题
bootp
初级用户





积分 66
发帖 25
注册 2006-11-26
状态 离线
『楼 主』:  请教:如何判断批处理文件本身是否以管理员权限运行?

Windows中有两种运行权限,

一种是普通权限(直接双击批处理文件)

一种是管理员权限运行(右击批处理文件,选“以管理员权限运行”)

请教:在批处理中,如何判断批处理自身是否以管理员权限运行?

谢谢先~~~~~

2009-12-17 02:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jarry0932
初级用户





积分 128
发帖 122
注册 2009-9-21
状态 离线
『第 2 楼』:  

双击批处理,在批处理中将当前用户信息显示出来,如果当前用户在管理组则为管理员身份运行,否则就是普通用户,批处理代码:
@echo off
net user %username% | find /i "administrators" >nul 2>nul
if %errorlevel%==1 echo 该用户为普通用户
echo 该用户为管理员
pause

2009-12-18 00:32
查看资料  发送邮件  发短消息 网志  OICQ (274997087)  编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 3 楼』:  

运行一些限制级命令。。。能执行成功则是管理员身份



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-12-18 08:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
f319
新手上路





积分 14
发帖 9
注册 2008-11-24
状态 离线
『第 4 楼』:  

2L代码有问题吧.


if %errorlevel%==1 echo 该用户为普通用户
echo 该用户为管理员

若%errorlevel%的值为1就会输出"该用户为普通用户", 然后继续运行下面的"echo 该用户为管理员".

2009-12-18 12:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jarry0932
初级用户





积分 128
发帖 122
注册 2009-9-21
状态 离线
『第 5 楼』:  

谢谢LS的提醒,昨天晚上太困了,没注意,确实有错误,现更正如下:
@echo off
net user %username% | find /i "administrators" >nul 2>nul
if %errorlevel%==1 (echo 该用户为普通用户 & pause && goto:eof)
echo 该用户为管理员
pause

2009-12-19 00:26
查看资料  发送邮件  发短消息 网志  OICQ (274997087)  编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 6 楼』:  


@echo off
net user %username% | find /i "administrators" >nul 2>nul
if %errorlevel%==1 (echo 普通用户)else echo 管理员
pause
使用else ,不必用goto。也可以使用&&和||来替换if的判断

[ Last edited by Hanyeguxing on 2009-12-19 at 00:47 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-12-19 00:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 7 楼』:  

wmic process where name='csrss.exe' getowner
wmic process where name='cmd.exe' getowner



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-12-21 03:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bootp
初级用户





积分 66
发帖 25
注册 2006-11-26
状态 离线
『第 8 楼』:  

非常感谢!!5楼代码有效。

请教7楼,代码没看明白,能稍加解释吗?

2009-12-21 04:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 9 楼』:  

wmic process where name='cmd.exe' getowner
查看进程cmd.exe的所有者,也就是运行用户名,你以超级用户执行或当前登录用户执行cmd.exe,使用这个查询可以看到不同的用户名
例如
wmic process where name='csrss.exe' getowner
的所有者是system



49206C6F766520796F752067757973 54656C3A3133383238343036373837
2009-12-22 04:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 10 楼』:  

7楼才是正解。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-12-22 05:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bootp
初级用户





积分 66
发帖 25
注册 2006-11-26
状态 离线
『第 11 楼』:  

非常感谢!!
各自运行了一下,这个代码可以判断出某进程的所有者。
上面给出的答案可以判断出当前用户是不是管理员。

再次感谢!!

2009-12-22 18:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: