[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

我做了一个用于系统管理的自动化批处理,但其中有一个问题是需要判断当前登录用户的权限是否足够。请问通过什么方式能够判断当前登录的域用户或本地用户具有本地管理员的权限?

[ 本帖最后由 lizhiqiang19 于 2009-10-22 22:04 编辑 ]

只在2003测试过...

@for /f "tokens=2 delims=*" %%i in ('net user %USERNAME%^|findstr "本地组成员"') do @echo %%i&pause>nul

TOP

楼上,你的方法我试过,对于用本地账户登录的方法可以使用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.         
复制代码
这个只能判断本地账户登录的权限情况,而不能判断登录的域账户在本地的权限情况

TOP

“域账户”这么重要的信息你竟然不在顶楼交待?
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

回复 5# sinping


    你这个我试了一试,总是提醒普通用户权限!

TOP

经过修改,这个好了
@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

TOP

返回列表