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

[系统相关] 批处理如何确定当前登录用户是否具有本地管理员权限?

[复制链接]
发表于 2009-10-22 15:38:26 | 显示全部楼层 |阅读模式
我做了一个用于系统管理的自动化批处理,但其中有一个问题是需要判断当前登录用户的权限是否足够。请问通过什么方式能够判断当前登录的域用户或本地用户具有本地管理员的权限?

[ 本帖最后由 lizhiqiang19 于 2009-10-22 22:04 编辑 ]
发表于 2009-10-23 01:03:00 | 显示全部楼层
只在2003测试过...

@for /f "tokens=2 delims=*" %%i in ('net user %USERNAME%^|findstr "本地组成员"') do @echo %%i&pause>nul
 楼主| 发表于 2009-10-23 13:43:16 | 显示全部楼层
楼上,你的方法我试过,对于用本地账户登录的方法可以使用net user 命令将其显示出来并查找。但对于使用域账号登陆时 net user 命令是不能列出该用户的,会提示找不到用户名。
    在使用域用户登录时还可以使用 net  user /domain 命令,在域中查找该用户,但我怎样才能确定他具有本地的administrators权限呢?同时需要考虑该用户的组嵌套情况。我的部分代码如下:
  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. ::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆
  3. :admin
  4. ECHO ************************判断当前用户权限******************
  5. net user %username% | findstr "*Administrators"
  6. if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)
  7. set /p logoff=现在要注销吗
  8. if /i "%logoff%"=="y" logoff
  9. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  10.         
复制代码
这个只能判断本地账户登录的权限情况,而不能判断登录的域账户在本地的权限情况
发表于 2009-10-23 19:09:24 | 显示全部楼层
“域账户”这么重要的信息你竟然不在顶楼交待?
发表于 2015-2-8 19:26:20 | 显示全部楼层
回复 5# sinping


    你这个我试了一试,总是提醒普通用户权限!
发表于 2015-2-8 19:30:45 | 显示全部楼层
经过修改,这个好了
@echo off
net user guest /active:yes>nul 2>nul
set a=%errorlevel%
if /i %a% EQU 0 goto :1
if /i %a% EQU 5 goto :2
:2
mshta javascript:window.alert("%a%------------------现用户为普通权限------------------%a%");window.close()
exit
:1
net user guest /active:no>nul 2>nul
mshta javascript:window.alert("%a%------------------现用户为管理员权限------------------%a%");window.close()
exit
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 16:38 , Processed in 0.028842 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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